# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'AppDynamicsConnectorApiTokenArgs',
    'AppDynamicsConnectorApiTokenArgsDict',
    'AppDynamicsConnectorUsernamePasswordArgs',
    'AppDynamicsConnectorUsernamePasswordArgsDict',
    'ArtifactoryConnectorCredentialsArgs',
    'ArtifactoryConnectorCredentialsArgsDict',
    'AwsCCConnectorCrossAccountAccessArgs',
    'AwsCCConnectorCrossAccountAccessArgsDict',
    'AwsConnectorCrossAccountAccessArgs',
    'AwsConnectorCrossAccountAccessArgsDict',
    'AwsConnectorEqualJitterBackoffStrategyArgs',
    'AwsConnectorEqualJitterBackoffStrategyArgsDict',
    'AwsConnectorFixedDelayBackoffStrategyArgs',
    'AwsConnectorFixedDelayBackoffStrategyArgsDict',
    'AwsConnectorFullJitterBackoffStrategyArgs',
    'AwsConnectorFullJitterBackoffStrategyArgsDict',
    'AwsConnectorInheritFromDelegateArgs',
    'AwsConnectorInheritFromDelegateArgsDict',
    'AwsConnectorIrsaArgs',
    'AwsConnectorIrsaArgsDict',
    'AwsConnectorManualArgs',
    'AwsConnectorManualArgsDict',
    'AwsConnectorOidcAuthenticationArgs',
    'AwsConnectorOidcAuthenticationArgsDict',
    'AwsKmsConnectorCredentialsArgs',
    'AwsKmsConnectorCredentialsArgsDict',
    'AwsKmsConnectorCredentialsAssumeRoleArgs',
    'AwsKmsConnectorCredentialsAssumeRoleArgsDict',
    'AwsKmsConnectorCredentialsManualArgs',
    'AwsKmsConnectorCredentialsManualArgsDict',
    'AwsKmsConnectorCredentialsOidcAuthenticationArgs',
    'AwsKmsConnectorCredentialsOidcAuthenticationArgsDict',
    'AwsSecretManagerConnectorCredentialsArgs',
    'AwsSecretManagerConnectorCredentialsArgsDict',
    'AwsSecretManagerConnectorCredentialsAssumeRoleArgs',
    'AwsSecretManagerConnectorCredentialsAssumeRoleArgsDict',
    'AwsSecretManagerConnectorCredentialsManualArgs',
    'AwsSecretManagerConnectorCredentialsManualArgsDict',
    'AwsSecretManagerConnectorCredentialsOidcAuthenticationArgs',
    'AwsSecretManagerConnectorCredentialsOidcAuthenticationArgsDict',
    'AzureCloudCostConnectorBillingExportSpec2Args',
    'AzureCloudCostConnectorBillingExportSpec2ArgsDict',
    'AzureCloudCostConnectorBillingExportSpecArgs',
    'AzureCloudCostConnectorBillingExportSpecArgsDict',
    'AzureCloudProviderConnectorCredentialsArgs',
    'AzureCloudProviderConnectorCredentialsArgsDict',
    'AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgs',
    'AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgsDict',
    'AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgs',
    'AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgsDict',
    'AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgs',
    'AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgsDict',
    'AzureCloudProviderConnectorCredentialsAzureManualDetailsArgs',
    'AzureCloudProviderConnectorCredentialsAzureManualDetailsArgsDict',
    'AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgs',
    'AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgsDict',
    'AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgs',
    'AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgsDict',
    'AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgs',
    'AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgsDict',
    'AzureCloudProviderConnectorCredentialsAzureOidcSpecArgs',
    'AzureCloudProviderConnectorCredentialsAzureOidcSpecArgsDict',
    'BitbucketConnectorApiAuthenticationArgs',
    'BitbucketConnectorApiAuthenticationArgsDict',
    'BitbucketConnectorCredentialsArgs',
    'BitbucketConnectorCredentialsArgsDict',
    'BitbucketConnectorCredentialsHttpArgs',
    'BitbucketConnectorCredentialsHttpArgsDict',
    'BitbucketConnectorCredentialsSshArgs',
    'BitbucketConnectorCredentialsSshArgsDict',
    'CentralNotificationChannelChannelArgs',
    'CentralNotificationChannelChannelArgsDict',
    'CentralNotificationChannelChannelHeaderArgs',
    'CentralNotificationChannelChannelHeaderArgsDict',
    'CentralNotificationChannelChannelUserGroupArgs',
    'CentralNotificationChannelChannelUserGroupArgsDict',
    'CentralNotificationRuleCustomNotificationTemplateRefArgs',
    'CentralNotificationRuleCustomNotificationTemplateRefArgsDict',
    'CentralNotificationRuleCustomNotificationTemplateRefVariableArgs',
    'CentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict',
    'CentralNotificationRuleNotificationConditionArgs',
    'CentralNotificationRuleNotificationConditionArgsDict',
    'CentralNotificationRuleNotificationConditionNotificationEventConfigArgs',
    'CentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict',
    'ConnectorAzureArtifactsCredentialsArgs',
    'ConnectorAzureArtifactsCredentialsArgsDict',
    'ConnectorAzureRepoApiAuthenticationArgs',
    'ConnectorAzureRepoApiAuthenticationArgsDict',
    'ConnectorAzureRepoCredentialsArgs',
    'ConnectorAzureRepoCredentialsArgsDict',
    'ConnectorAzureRepoCredentialsHttpArgs',
    'ConnectorAzureRepoCredentialsHttpArgsDict',
    'ConnectorAzureRepoCredentialsSshArgs',
    'ConnectorAzureRepoCredentialsSshArgsDict',
    'ConnectorCustomSecretManagerTemplateInputArgs',
    'ConnectorCustomSecretManagerTemplateInputArgsDict',
    'ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgs',
    'ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgsDict',
    'ConnectorCustomhealthsourceHeaderArgs',
    'ConnectorCustomhealthsourceHeaderArgsDict',
    'ConnectorCustomhealthsourceParamArgs',
    'ConnectorCustomhealthsourceParamArgsDict',
    'ConnectorGcpKmsManualArgs',
    'ConnectorGcpKmsManualArgsDict',
    'ConnectorGcpKmsOidcAuthenticationArgs',
    'ConnectorGcpKmsOidcAuthenticationArgsDict',
    'ConnectorJdbcCredentialsArgs',
    'ConnectorJdbcCredentialsArgsDict',
    'ConnectorJdbcCredentialsServiceAccountArgs',
    'ConnectorJdbcCredentialsServiceAccountArgsDict',
    'ConnectorJdbcCredentialsUsernamePasswordArgs',
    'ConnectorJdbcCredentialsUsernamePasswordArgsDict',
    'ConnectorPdcHostArgs',
    'ConnectorPdcHostArgsDict',
    'ConnectorRancherBearerTokenArgs',
    'ConnectorRancherBearerTokenArgsDict',
    'DbSchemaChangelogScriptArgs',
    'DbSchemaChangelogScriptArgsDict',
    'DbSchemaSchemaSourceArgs',
    'DbSchemaSchemaSourceArgsDict',
    'DefaultNotificationTemplateSetEventTemplateConfigurationSetArgs',
    'DefaultNotificationTemplateSetEventTemplateConfigurationSetArgsDict',
    'DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs',
    'DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgsDict',
    'DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs',
    'DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgsDict',
    'DockerConnectorCredentialsArgs',
    'DockerConnectorCredentialsArgsDict',
    'ElasticsearchConnectorApiTokenArgs',
    'ElasticsearchConnectorApiTokenArgsDict',
    'ElasticsearchConnectorNoAuthenticationArgs',
    'ElasticsearchConnectorNoAuthenticationArgsDict',
    'ElasticsearchConnectorUsernamePasswordArgs',
    'ElasticsearchConnectorUsernamePasswordArgsDict',
    'EnvironmentClustersMappingClusterArgs',
    'EnvironmentClustersMappingClusterArgsDict',
    'EnvironmentGitDetailsArgs',
    'EnvironmentGitDetailsArgsDict',
    'FeatureFlagEnvironmentArgs',
    'FeatureFlagEnvironmentArgsDict',
    'FeatureFlagEnvironmentAddTargetRuleArgs',
    'FeatureFlagEnvironmentAddTargetRuleArgsDict',
    'FeatureFlagTagArgs',
    'FeatureFlagTagArgsDict',
    'FeatureFlagTargetGroupRuleArgs',
    'FeatureFlagTargetGroupRuleArgsDict',
    'FeatureFlagVariationArgs',
    'FeatureFlagVariationArgsDict',
    'FileStoreFileCreatedByArgs',
    'FileStoreFileCreatedByArgsDict',
    'FileStoreFileLastModifiedByArgs',
    'FileStoreFileLastModifiedByArgsDict',
    'FileStoreFolderCreatedByArgs',
    'FileStoreFolderCreatedByArgsDict',
    'FileStoreFolderLastModifiedByArgs',
    'FileStoreFolderLastModifiedByArgsDict',
    'FiltersFilterPropertiesArgs',
    'FiltersFilterPropertiesArgsDict',
    'GcpCloudCostConnectorBillingExportSpecArgs',
    'GcpCloudCostConnectorBillingExportSpecArgsDict',
    'GcpConnectorInheritFromDelegateArgs',
    'GcpConnectorInheritFromDelegateArgsDict',
    'GcpConnectorManualArgs',
    'GcpConnectorManualArgsDict',
    'GcpConnectorOidcAuthenticationArgs',
    'GcpConnectorOidcAuthenticationArgsDict',
    'GcpSecretManagerConnectorOidcAuthenticationArgs',
    'GcpSecretManagerConnectorOidcAuthenticationArgsDict',
    'GitConnectorCredentialsArgs',
    'GitConnectorCredentialsArgsDict',
    'GitConnectorCredentialsHttpArgs',
    'GitConnectorCredentialsHttpArgsDict',
    'GitConnectorCredentialsSshArgs',
    'GitConnectorCredentialsSshArgsDict',
    'GitOpsAgentMetadataArgs',
    'GitOpsAgentMetadataArgsDict',
    'GitOpsApplicationsApplicationArgs',
    'GitOpsApplicationsApplicationArgsDict',
    'GitOpsApplicationsApplicationMetadataArgs',
    'GitOpsApplicationsApplicationMetadataArgsDict',
    'GitOpsApplicationsApplicationMetadataOwnerReferenceArgs',
    'GitOpsApplicationsApplicationMetadataOwnerReferenceArgsDict',
    'GitOpsApplicationsApplicationSpecArgs',
    'GitOpsApplicationsApplicationSpecArgsDict',
    'GitOpsApplicationsApplicationSpecDestinationArgs',
    'GitOpsApplicationsApplicationSpecDestinationArgsDict',
    'GitOpsApplicationsApplicationSpecSourceArgs',
    'GitOpsApplicationsApplicationSpecSourceArgsDict',
    'GitOpsApplicationsApplicationSpecSourceDirectoryArgs',
    'GitOpsApplicationsApplicationSpecSourceDirectoryArgsDict',
    'GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgs',
    'GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgsDict',
    'GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgs',
    'GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgs',
    'GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitOpsApplicationsApplicationSpecSourceHelmArgs',
    'GitOpsApplicationsApplicationSpecSourceHelmArgsDict',
    'GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgs',
    'GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgsDict',
    'GitOpsApplicationsApplicationSpecSourceHelmParameterArgs',
    'GitOpsApplicationsApplicationSpecSourceHelmParameterArgsDict',
    'GitOpsApplicationsApplicationSpecSourceKsonnetArgs',
    'GitOpsApplicationsApplicationSpecSourceKsonnetArgsDict',
    'GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgs',
    'GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgsDict',
    'GitOpsApplicationsApplicationSpecSourceKustomizeArgs',
    'GitOpsApplicationsApplicationSpecSourceKustomizeArgsDict',
    'GitOpsApplicationsApplicationSpecSourcePluginArgs',
    'GitOpsApplicationsApplicationSpecSourcePluginArgsDict',
    'GitOpsApplicationsApplicationSpecSourcePluginEnvArgs',
    'GitOpsApplicationsApplicationSpecSourcePluginEnvArgsDict',
    'GitOpsApplicationsApplicationSpecSyncPolicyArgs',
    'GitOpsApplicationsApplicationSpecSyncPolicyArgsDict',
    'GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgs',
    'GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgsDict',
    'GitOpsApplicationsApplicationSpecSyncPolicyRetryArgs',
    'GitOpsApplicationsApplicationSpecSyncPolicyRetryArgsDict',
    'GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgs',
    'GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgsDict',
    'GitOpsClusterRequestArgs',
    'GitOpsClusterRequestArgsDict',
    'GitOpsClusterRequestClusterArgs',
    'GitOpsClusterRequestClusterArgsDict',
    'GitOpsClusterRequestClusterConfigArgs',
    'GitOpsClusterRequestClusterConfigArgsDict',
    'GitOpsClusterRequestClusterConfigExecProviderConfigArgs',
    'GitOpsClusterRequestClusterConfigExecProviderConfigArgsDict',
    'GitOpsClusterRequestClusterConfigTlsClientConfigArgs',
    'GitOpsClusterRequestClusterConfigTlsClientConfigArgsDict',
    'GitOpsClusterRequestClusterInfoArgs',
    'GitOpsClusterRequestClusterInfoArgsDict',
    'GitOpsClusterRequestClusterInfoCacheInfoArgs',
    'GitOpsClusterRequestClusterInfoCacheInfoArgsDict',
    'GitOpsClusterRequestClusterInfoConnectionStateArgs',
    'GitOpsClusterRequestClusterInfoConnectionStateArgsDict',
    'GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgs',
    'GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgsDict',
    'GitOpsClusterRequestClusterRefreshRequestedAtArgs',
    'GitOpsClusterRequestClusterRefreshRequestedAtArgsDict',
    'GitOpsGnupgRequestArgs',
    'GitOpsGnupgRequestArgsDict',
    'GitOpsGnupgRequestPublickeyArgs',
    'GitOpsGnupgRequestPublickeyArgsDict',
    'GitOpsRepoCertRequestArgs',
    'GitOpsRepoCertRequestArgsDict',
    'GitOpsRepoCertRequestCertificateArgs',
    'GitOpsRepoCertRequestCertificateArgsDict',
    'GitOpsRepoCertRequestCertificateItemArgs',
    'GitOpsRepoCertRequestCertificateItemArgsDict',
    'GitOpsRepoCertRequestCertificateMetadataArgs',
    'GitOpsRepoCertRequestCertificateMetadataArgsDict',
    'GitOpsRepoCredCredArgs',
    'GitOpsRepoCredCredArgsDict',
    'GitOpsRepositoryEcrGenArgs',
    'GitOpsRepositoryEcrGenArgsDict',
    'GitOpsRepositoryEcrGenJwtAuthArgs',
    'GitOpsRepositoryEcrGenJwtAuthArgsDict',
    'GitOpsRepositoryEcrGenSecretRefArgs',
    'GitOpsRepositoryEcrGenSecretRefArgsDict',
    'GitOpsRepositoryGcrGenArgs',
    'GitOpsRepositoryGcrGenArgsDict',
    'GitOpsRepositoryGcrGenWorkloadIdentityArgs',
    'GitOpsRepositoryGcrGenWorkloadIdentityArgsDict',
    'GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgs',
    'GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgsDict',
    'GitOpsRepositoryRepoArgs',
    'GitOpsRepositoryRepoArgsDict',
    'GitOpsRepositoryUpdateMaskArgs',
    'GitOpsRepositoryUpdateMaskArgsDict',
    'GithubConnectorApiAuthenticationArgs',
    'GithubConnectorApiAuthenticationArgsDict',
    'GithubConnectorApiAuthenticationGithubAppArgs',
    'GithubConnectorApiAuthenticationGithubAppArgsDict',
    'GithubConnectorCredentialsArgs',
    'GithubConnectorCredentialsArgsDict',
    'GithubConnectorCredentialsHttpArgs',
    'GithubConnectorCredentialsHttpArgsDict',
    'GithubConnectorCredentialsHttpAnonymouseArgs',
    'GithubConnectorCredentialsHttpAnonymouseArgsDict',
    'GithubConnectorCredentialsHttpGithubAppArgs',
    'GithubConnectorCredentialsHttpGithubAppArgsDict',
    'GithubConnectorCredentialsSshArgs',
    'GithubConnectorCredentialsSshArgsDict',
    'GitlabConnectorApiAuthenticationArgs',
    'GitlabConnectorApiAuthenticationArgsDict',
    'GitlabConnectorCredentialsArgs',
    'GitlabConnectorCredentialsArgsDict',
    'GitlabConnectorCredentialsHttpArgs',
    'GitlabConnectorCredentialsHttpArgsDict',
    'GitlabConnectorCredentialsSshArgs',
    'GitlabConnectorCredentialsSshArgsDict',
    'GitopsAppProjectProjectArgs',
    'GitopsAppProjectProjectArgsDict',
    'GitopsAppProjectProjectMetadataArgs',
    'GitopsAppProjectProjectMetadataArgsDict',
    'GitopsAppProjectProjectMetadataManagedFieldArgs',
    'GitopsAppProjectProjectMetadataManagedFieldArgsDict',
    'GitopsAppProjectProjectSpecArgs',
    'GitopsAppProjectProjectSpecArgsDict',
    'GitopsAppProjectProjectSpecClusterResourceBlacklistArgs',
    'GitopsAppProjectProjectSpecClusterResourceBlacklistArgsDict',
    'GitopsAppProjectProjectSpecClusterResourceWhitelistArgs',
    'GitopsAppProjectProjectSpecClusterResourceWhitelistArgsDict',
    'GitopsAppProjectProjectSpecDestinationArgs',
    'GitopsAppProjectProjectSpecDestinationArgsDict',
    'GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgs',
    'GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgsDict',
    'GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgs',
    'GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgsDict',
    'GitopsAppProjectProjectSpecOrphanedResourceArgs',
    'GitopsAppProjectProjectSpecOrphanedResourceArgsDict',
    'GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgs',
    'GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgsDict',
    'GitopsAppProjectProjectSpecRoleArgs',
    'GitopsAppProjectProjectSpecRoleArgsDict',
    'GitopsAppProjectProjectSpecRoleJwtTokenArgs',
    'GitopsAppProjectProjectSpecRoleJwtTokenArgsDict',
    'GitopsAppProjectProjectSpecSignatureKeyArgs',
    'GitopsAppProjectProjectSpecSignatureKeyArgsDict',
    'GitopsAppProjectProjectSpecSyncWindowArgs',
    'GitopsAppProjectProjectSpecSyncWindowArgsDict',
    'GitopsApplicationsetApplicationsetArgs',
    'GitopsApplicationsetApplicationsetArgsDict',
    'GitopsApplicationsetApplicationsetMetadataArgs',
    'GitopsApplicationsetApplicationsetMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecArgs',
    'GitopsApplicationsetApplicationsetSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgsDict',
    'GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecStrategyArgs',
    'GitopsApplicationsetApplicationsetSpecStrategyArgsDict',
    'GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgs',
    'GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgsDict',
    'GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgs',
    'GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgsDict',
    'GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgs',
    'GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgsDict',
    'GitopsApplicationsetApplicationsetSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgsDict',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgs',
    'GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgsDict',
    'HarRegistryConfigArgs',
    'HarRegistryConfigArgsDict',
    'HarRegistryConfigAuthArgs',
    'HarRegistryConfigAuthArgsDict',
    'HelmConnectorCredentialsArgs',
    'HelmConnectorCredentialsArgsDict',
    'IdpCatalogEntityGitDetailsArgs',
    'IdpCatalogEntityGitDetailsArgsDict',
    'InfraModuleTestingTestingMetadataArgs',
    'InfraModuleTestingTestingMetadataArgsDict',
    'InfraVariableSetConnectorArgs',
    'InfraVariableSetConnectorArgsDict',
    'InfraVariableSetEnvironmentVariableArgs',
    'InfraVariableSetEnvironmentVariableArgsDict',
    'InfraVariableSetTerraformVariableArgs',
    'InfraVariableSetTerraformVariableArgsDict',
    'InfraVariableSetTerraformVariableFileArgs',
    'InfraVariableSetTerraformVariableFileArgsDict',
    'InfrastructureGitDetailsArgs',
    'InfrastructureGitDetailsArgsDict',
    'InputSetGitDetailsArgs',
    'InputSetGitDetailsArgsDict',
    'InputSetGitImportInfoArgs',
    'InputSetGitImportInfoArgsDict',
    'InputSetInputSetImportRequestArgs',
    'InputSetInputSetImportRequestArgsDict',
    'JenkinsConnectorAuthArgs',
    'JenkinsConnectorAuthArgsDict',
    'JenkinsConnectorAuthJenkinsBearerTokenArgs',
    'JenkinsConnectorAuthJenkinsBearerTokenArgsDict',
    'JenkinsConnectorAuthJenkinsUserNamePasswordArgs',
    'JenkinsConnectorAuthJenkinsUserNamePasswordArgsDict',
    'JiraConnectorAuthArgs',
    'JiraConnectorAuthArgsDict',
    'JiraConnectorAuthPersonalAccessTokenArgs',
    'JiraConnectorAuthPersonalAccessTokenArgsDict',
    'JiraConnectorAuthUsernamePasswordArgs',
    'JiraConnectorAuthUsernamePasswordArgsDict',
    'KubernetesConnectorClientKeyCertArgs',
    'KubernetesConnectorClientKeyCertArgsDict',
    'KubernetesConnectorInheritFromDelegateArgs',
    'KubernetesConnectorInheritFromDelegateArgsDict',
    'KubernetesConnectorOpenidConnectArgs',
    'KubernetesConnectorOpenidConnectArgsDict',
    'KubernetesConnectorServiceAccountArgs',
    'KubernetesConnectorServiceAccountArgsDict',
    'KubernetesConnectorUsernamePasswordArgs',
    'KubernetesConnectorUsernamePasswordArgsDict',
    'ManualFreezeCurrentOrUpcomingWindowArgs',
    'ManualFreezeCurrentOrUpcomingWindowArgsDict',
    'ManualFreezeFreezeWindowArgs',
    'ManualFreezeFreezeWindowArgsDict',
    'ManualFreezeFreezeWindowRecurrenceArgs',
    'ManualFreezeFreezeWindowRecurrenceArgsDict',
    'ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgs',
    'ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgsDict',
    'MonitoredServiceRequestArgs',
    'MonitoredServiceRequestArgsDict',
    'MonitoredServiceRequestChangeSourceArgs',
    'MonitoredServiceRequestChangeSourceArgsDict',
    'MonitoredServiceRequestDependencyArgs',
    'MonitoredServiceRequestDependencyArgsDict',
    'MonitoredServiceRequestHealthSourceArgs',
    'MonitoredServiceRequestHealthSourceArgsDict',
    'MonitoredServiceRequestNotificationRuleRefArgs',
    'MonitoredServiceRequestNotificationRuleRefArgsDict',
    'NexusConnectorCredentialsArgs',
    'NexusConnectorCredentialsArgsDict',
    'NotificationRuleRequestArgs',
    'NotificationRuleRequestArgsDict',
    'NotificationRuleRequestConditionArgs',
    'NotificationRuleRequestConditionArgsDict',
    'NotificationRuleRequestNotificationMethodArgs',
    'NotificationRuleRequestNotificationMethodArgsDict',
    'OciHelmConnectorCredentialsArgs',
    'OciHelmConnectorCredentialsArgsDict',
    'OverridesGitDetailsArgs',
    'OverridesGitDetailsArgsDict',
    'PipelineCentralNotificationRuleCustomNotificationTemplateRefArgs',
    'PipelineCentralNotificationRuleCustomNotificationTemplateRefArgsDict',
    'PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs',
    'PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict',
    'PipelineCentralNotificationRuleNotificationConditionArgs',
    'PipelineCentralNotificationRuleNotificationConditionArgsDict',
    'PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs',
    'PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict',
    'PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs',
    'PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgsDict',
    'PipelineFiltersFilterPropertiesArgs',
    'PipelineFiltersFilterPropertiesArgsDict',
    'PipelineFiltersFilterPropertiesModulePropertiesArgs',
    'PipelineFiltersFilterPropertiesModulePropertiesArgsDict',
    'PipelineFiltersFilterPropertiesModulePropertiesCdArgs',
    'PipelineFiltersFilterPropertiesModulePropertiesCdArgsDict',
    'PipelineFiltersFilterPropertiesModulePropertiesCiArgs',
    'PipelineFiltersFilterPropertiesModulePropertiesCiArgsDict',
    'PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgs',
    'PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgsDict',
    'PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgs',
    'PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgsDict',
    'PipelineGitDetailsArgs',
    'PipelineGitDetailsArgsDict',
    'PipelineGitImportInfoArgs',
    'PipelineGitImportInfoArgsDict',
    'PipelinePipelineImportRequestArgs',
    'PipelinePipelineImportRequestArgsDict',
    'PolicySetPolicyArgs',
    'PolicySetPolicyArgsDict',
    'PolicySetPolicyReferenceArgs',
    'PolicySetPolicyReferenceArgsDict',
    'PrometheusConnectorHeaderArgs',
    'PrometheusConnectorHeaderArgsDict',
    'ProviderSpecArgs',
    'ProviderSpecArgsDict',
    'RepoRuleBranchBypassArgs',
    'RepoRuleBranchBypassArgsDict',
    'RepoRuleBranchPatternArgs',
    'RepoRuleBranchPatternArgsDict',
    'RepoRuleBranchPolicyArgs',
    'RepoRuleBranchPolicyArgsDict',
    'RepoSourceArgs',
    'RepoSourceArgsDict',
    'ResourceGroupIncludedScopeArgs',
    'ResourceGroupIncludedScopeArgsDict',
    'ResourceGroupResourceFilterArgs',
    'ResourceGroupResourceFilterArgsDict',
    'ResourceGroupResourceFilterResourceArgs',
    'ResourceGroupResourceFilterResourceArgsDict',
    'ResourceGroupResourceFilterResourceAttributeFilterArgs',
    'ResourceGroupResourceFilterResourceAttributeFilterArgsDict',
    'RoleAssignmentsPrincipalArgs',
    'RoleAssignmentsPrincipalArgsDict',
    'SecretFileAdditionalMetadataArgs',
    'SecretFileAdditionalMetadataArgsDict',
    'SecretFileAdditionalMetadataValueArgs',
    'SecretFileAdditionalMetadataValueArgsDict',
    'SecretSshkeyKerberosArgs',
    'SecretSshkeyKerberosArgsDict',
    'SecretSshkeyKerberosTgtKeyTabFilePathSpecArgs',
    'SecretSshkeyKerberosTgtKeyTabFilePathSpecArgsDict',
    'SecretSshkeyKerberosTgtPasswordSpecArgs',
    'SecretSshkeyKerberosTgtPasswordSpecArgsDict',
    'SecretSshkeySshArgs',
    'SecretSshkeySshArgsDict',
    'SecretSshkeySshSshPasswordCredentialArgs',
    'SecretSshkeySshSshPasswordCredentialArgsDict',
    'SecretSshkeySshSshkeyPathCredentialArgs',
    'SecretSshkeySshSshkeyPathCredentialArgsDict',
    'SecretSshkeySshSshkeyReferenceCredentialArgs',
    'SecretSshkeySshSshkeyReferenceCredentialArgsDict',
    'SecretTextAdditionalMetadataArgs',
    'SecretTextAdditionalMetadataArgsDict',
    'SecretTextAdditionalMetadataValueArgs',
    'SecretTextAdditionalMetadataValueArgsDict',
    'SecretWinrmKerberosArgs',
    'SecretWinrmKerberosArgsDict',
    'SecretWinrmKerberosTgtKeyTabFilePathSpecArgs',
    'SecretWinrmKerberosTgtKeyTabFilePathSpecArgsDict',
    'SecretWinrmKerberosTgtPasswordSpecArgs',
    'SecretWinrmKerberosTgtPasswordSpecArgsDict',
    'SecretWinrmNtlmArgs',
    'SecretWinrmNtlmArgsDict',
    'ServiceGitDetailsArgs',
    'ServiceGitDetailsArgsDict',
    'ServiceNowConnectorAuthArgs',
    'ServiceNowConnectorAuthArgsDict',
    'ServiceNowConnectorAuthAdfsArgs',
    'ServiceNowConnectorAuthAdfsArgsDict',
    'ServiceNowConnectorAuthRefreshTokenArgs',
    'ServiceNowConnectorAuthRefreshTokenArgsDict',
    'ServiceNowConnectorAuthUsernamePasswordArgs',
    'ServiceNowConnectorAuthUsernamePasswordArgsDict',
    'ServiceOverridesV2GitDetailsArgs',
    'ServiceOverridesV2GitDetailsArgsDict',
    'SloRequestArgs',
    'SloRequestArgsDict',
    'SloRequestNotificationRuleRefArgs',
    'SloRequestNotificationRuleRefArgsDict',
    'SloRequestSloTargetArgs',
    'SloRequestSloTargetArgsDict',
    'SpotConnectorPermanentTokenArgs',
    'SpotConnectorPermanentTokenArgsDict',
    'TasConnectorCredentialsArgs',
    'TasConnectorCredentialsArgsDict',
    'TasConnectorCredentialsTasManualDetailsArgs',
    'TasConnectorCredentialsTasManualDetailsArgsDict',
    'TemplateFiltersFilterPropertiesArgs',
    'TemplateFiltersFilterPropertiesArgsDict',
    'TemplateGitDetailsArgs',
    'TemplateGitDetailsArgsDict',
    'TemplateGitImportDetailsArgs',
    'TemplateGitImportDetailsArgsDict',
    'TemplateTemplateImportRequestArgs',
    'TemplateTemplateImportRequestArgsDict',
    'TerraformCloudConnectorCredentialsArgs',
    'TerraformCloudConnectorCredentialsArgsDict',
    'TerraformCloudConnectorCredentialsApiTokenArgs',
    'TerraformCloudConnectorCredentialsApiTokenArgsDict',
    'UserRoleBindingArgs',
    'UserRoleBindingArgsDict',
    'UsergroupNotificationConfigArgs',
    'UsergroupNotificationConfigArgsDict',
    'VariablesSpecArgs',
    'VariablesSpecArgsDict',
    'WorkspaceConnectorArgs',
    'WorkspaceConnectorArgsDict',
    'WorkspaceEnvironmentVariableArgs',
    'WorkspaceEnvironmentVariableArgsDict',
    'WorkspaceTerraformVariableArgs',
    'WorkspaceTerraformVariableArgsDict',
    'WorkspaceTerraformVariableFileArgs',
    'WorkspaceTerraformVariableFileArgsDict',
    'GetCentralNotificationChannelChannelArgs',
    'GetCentralNotificationChannelChannelArgsDict',
    'GetCentralNotificationChannelChannelHeaderArgs',
    'GetCentralNotificationChannelChannelHeaderArgsDict',
    'GetCentralNotificationChannelChannelUserGroupArgs',
    'GetCentralNotificationChannelChannelUserGroupArgsDict',
    'GetCentralNotificationRuleCustomNotificationTemplateRefArgs',
    'GetCentralNotificationRuleCustomNotificationTemplateRefArgsDict',
    'GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgs',
    'GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict',
    'GetCentralNotificationRuleNotificationConditionArgs',
    'GetCentralNotificationRuleNotificationConditionArgsDict',
    'GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgs',
    'GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict',
    'GetConnectorRancherBearerTokenArgs',
    'GetConnectorRancherBearerTokenArgsDict',
    'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetArgs',
    'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetArgsDict',
    'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs',
    'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgsDict',
    'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs',
    'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgsDict',
    'GetEnvironmentClustersMappingClusterArgs',
    'GetEnvironmentClustersMappingClusterArgsDict',
    'GetEnvironmentGitDetailsArgs',
    'GetEnvironmentGitDetailsArgsDict',
    'GetGitopsAgentDeployYamlArgocdSettingsArgs',
    'GetGitopsAgentDeployYamlArgocdSettingsArgsDict',
    'GetGitopsAgentDeployYamlProxyArgs',
    'GetGitopsAgentDeployYamlProxyArgsDict',
    'GetGitopsAgentOperatorYamlProxyArgs',
    'GetGitopsAgentOperatorYamlProxyArgsDict',
    'GetGitopsGnupgRequestArgs',
    'GetGitopsGnupgRequestArgsDict',
    'GetGitopsGnupgRequestPublickeyArgs',
    'GetGitopsGnupgRequestPublickeyArgsDict',
    'GetGitopsRepoCredCredArgs',
    'GetGitopsRepoCredCredArgsDict',
    'GetHarRegistryConfigArgs',
    'GetHarRegistryConfigArgsDict',
    'GetHarRegistryConfigAuthArgs',
    'GetHarRegistryConfigAuthArgsDict',
    'GetInfraModuleTestingMetadataArgs',
    'GetInfraModuleTestingMetadataArgsDict',
    'GetInfraModuleTestingTestingMetadataArgs',
    'GetInfraModuleTestingTestingMetadataArgsDict',
    'GetInfraVariableSetConnectorArgs',
    'GetInfraVariableSetConnectorArgsDict',
    'GetInfraVariableSetEnvironmentVariableArgs',
    'GetInfraVariableSetEnvironmentVariableArgsDict',
    'GetInfraVariableSetTerraformVariableArgs',
    'GetInfraVariableSetTerraformVariableArgsDict',
    'GetInfraVariableSetTerraformVariableFileArgs',
    'GetInfraVariableSetTerraformVariableFileArgsDict',
    'GetInfrastructureGitDetailsArgs',
    'GetInfrastructureGitDetailsArgsDict',
    'GetInputSetGitDetailsArgs',
    'GetInputSetGitDetailsArgsDict',
    'GetOverridesGitDetailsArgs',
    'GetOverridesGitDetailsArgsDict',
    'GetPipelineCentralNotificationRuleCustomNotificationTemplateRefArgs',
    'GetPipelineCentralNotificationRuleCustomNotificationTemplateRefArgsDict',
    'GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs',
    'GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict',
    'GetPipelineCentralNotificationRuleNotificationConditionArgs',
    'GetPipelineCentralNotificationRuleNotificationConditionArgsDict',
    'GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs',
    'GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict',
    'GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs',
    'GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgsDict',
    'GetPipelineGitDetailsArgs',
    'GetPipelineGitDetailsArgsDict',
    'GetPolicySetPolicyArgs',
    'GetPolicySetPolicyArgsDict',
    'GetPolicySetPolicyReferenceArgs',
    'GetPolicySetPolicyReferenceArgsDict',
    'GetRepoRuleBranchBypassArgs',
    'GetRepoRuleBranchBypassArgsDict',
    'GetRepoRuleBranchPatternArgs',
    'GetRepoRuleBranchPatternArgsDict',
    'GetRepoRuleBranchPolicyArgs',
    'GetRepoRuleBranchPolicyArgsDict',
    'GetRepoSourceArgs',
    'GetRepoSourceArgsDict',
    'GetSecretFileAdditionalMetadataArgs',
    'GetSecretFileAdditionalMetadataArgsDict',
    'GetSecretFileAdditionalMetadataValueArgs',
    'GetSecretFileAdditionalMetadataValueArgsDict',
    'GetSecretTextAdditionalMetadataArgs',
    'GetSecretTextAdditionalMetadataArgsDict',
    'GetSecretTextAdditionalMetadataValueArgs',
    'GetSecretTextAdditionalMetadataValueArgsDict',
    'GetServiceGitDetailsArgs',
    'GetServiceGitDetailsArgsDict',
    'GetServiceOverridesV2GitDetailsArgs',
    'GetServiceOverridesV2GitDetailsArgsDict',
    'GetTemplateGitDetailsArgs',
    'GetTemplateGitDetailsArgsDict',
    'GetUsergroupNotificationConfigArgs',
    'GetUsergroupNotificationConfigArgsDict',
    'GetWorkspaceConnectorArgs',
    'GetWorkspaceConnectorArgsDict',
    'GetWorkspaceEnvironmentVariableArgs',
    'GetWorkspaceEnvironmentVariableArgsDict',
    'GetWorkspaceTerraformVariableArgs',
    'GetWorkspaceTerraformVariableArgsDict',
    'GetWorkspaceTerraformVariableFileArgs',
    'GetWorkspaceTerraformVariableFileArgsDict',
]

MYPY = False

if not MYPY:
    class AppDynamicsConnectorApiTokenArgsDict(TypedDict):
        client_id: pulumi.Input[_builtins.str]
        """
        The client id used for connecting to App Dynamics.
        """
        client_secret_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
elif False:
    AppDynamicsConnectorApiTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AppDynamicsConnectorApiTokenArgs:
    def __init__(__self__, *,
                 client_id: pulumi.Input[_builtins.str],
                 client_secret_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] client_id: The client id used for connecting to App Dynamics.
        :param pulumi.Input[_builtins.str] client_secret_ref: 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}.
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "client_secret_ref", client_secret_ref)

    @_builtins.property
    @pulumi.getter(name="clientId")
    def client_id(self) -> pulumi.Input[_builtins.str]:
        """
        The client id used for connecting to App Dynamics.
        """
        return pulumi.get(self, "client_id")

    @client_id.setter
    def client_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_id", value)

    @_builtins.property
    @pulumi.getter(name="clientSecretRef")
    def client_secret_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "client_secret_ref")

    @client_secret_ref.setter
    def client_secret_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_secret_ref", value)


if not MYPY:
    class AppDynamicsConnectorUsernamePasswordArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: pulumi.Input[_builtins.str]
        """
        Username to use for authentication.
        """
elif False:
    AppDynamicsConnectorUsernamePasswordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AppDynamicsConnectorUsernamePasswordArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> pulumi.Input[_builtins.str]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "username", value)


if not MYPY:
    class ArtifactoryConnectorCredentialsArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    ArtifactoryConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ArtifactoryConnectorCredentialsArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class AwsCCConnectorCrossAccountAccessArgsDict(TypedDict):
        external_id: pulumi.Input[_builtins.str]
        """
        The external id of the role to use for cross-account access. This is a random unique value to provide additional secure authentication.
        """
        role_arn: pulumi.Input[_builtins.str]
        """
        The ARN of the role to use for cross-account access.
        """
elif False:
    AwsCCConnectorCrossAccountAccessArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsCCConnectorCrossAccountAccessArgs:
    def __init__(__self__, *,
                 external_id: pulumi.Input[_builtins.str],
                 role_arn: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] external_id: The external id of the role to use for cross-account access. This is a random unique value to provide additional secure authentication.
        :param pulumi.Input[_builtins.str] role_arn: The ARN of the role to use for cross-account access.
        """
        pulumi.set(__self__, "external_id", external_id)
        pulumi.set(__self__, "role_arn", role_arn)

    @_builtins.property
    @pulumi.getter(name="externalId")
    def external_id(self) -> pulumi.Input[_builtins.str]:
        """
        The external id of the role to use for cross-account access. This is a random unique value to provide additional secure authentication.
        """
        return pulumi.get(self, "external_id")

    @external_id.setter
    def external_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "external_id", value)

    @_builtins.property
    @pulumi.getter(name="roleArn")
    def role_arn(self) -> pulumi.Input[_builtins.str]:
        """
        The ARN of the role to use for cross-account access.
        """
        return pulumi.get(self, "role_arn")

    @role_arn.setter
    def role_arn(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "role_arn", value)


if not MYPY:
    class AwsConnectorCrossAccountAccessArgsDict(TypedDict):
        role_arn: pulumi.Input[_builtins.str]
        """
        The Amazon Resource Name (ARN) of the role that you want to assume. This is an IAM role in the target AWS account.
        """
        external_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
elif False:
    AwsConnectorCrossAccountAccessArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsConnectorCrossAccountAccessArgs:
    def __init__(__self__, *,
                 role_arn: pulumi.Input[_builtins.str],
                 external_id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] role_arn: The Amazon Resource Name (ARN) of the role that you want to assume. This is an IAM role in the target AWS account.
        :param pulumi.Input[_builtins.str] external_id: If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
        pulumi.set(__self__, "role_arn", role_arn)
        if external_id is not None:
            pulumi.set(__self__, "external_id", external_id)

    @_builtins.property
    @pulumi.getter(name="roleArn")
    def role_arn(self) -> pulumi.Input[_builtins.str]:
        """
        The Amazon Resource Name (ARN) of the role that you want to assume. This is an IAM role in the target AWS account.
        """
        return pulumi.get(self, "role_arn")

    @role_arn.setter
    def role_arn(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "role_arn", value)

    @_builtins.property
    @pulumi.getter(name="externalId")
    def external_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
        return pulumi.get(self, "external_id")

    @external_id.setter
    def external_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "external_id", value)


if not MYPY:
    class AwsConnectorEqualJitterBackoffStrategyArgsDict(TypedDict):
        base_delay: NotRequired[pulumi.Input[_builtins.int]]
        """
        Base delay.
        """
        max_backoff_time: NotRequired[pulumi.Input[_builtins.int]]
        """
        Max BackOff Time.
        """
        retry_count: NotRequired[pulumi.Input[_builtins.int]]
        """
        Retry Count.
        """
elif False:
    AwsConnectorEqualJitterBackoffStrategyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsConnectorEqualJitterBackoffStrategyArgs:
    def __init__(__self__, *,
                 base_delay: Optional[pulumi.Input[_builtins.int]] = None,
                 max_backoff_time: Optional[pulumi.Input[_builtins.int]] = None,
                 retry_count: Optional[pulumi.Input[_builtins.int]] = None):
        """
        :param pulumi.Input[_builtins.int] base_delay: Base delay.
        :param pulumi.Input[_builtins.int] max_backoff_time: Max BackOff Time.
        :param pulumi.Input[_builtins.int] retry_count: Retry Count.
        """
        if base_delay is not None:
            pulumi.set(__self__, "base_delay", base_delay)
        if max_backoff_time is not None:
            pulumi.set(__self__, "max_backoff_time", max_backoff_time)
        if retry_count is not None:
            pulumi.set(__self__, "retry_count", retry_count)

    @_builtins.property
    @pulumi.getter(name="baseDelay")
    def base_delay(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Base delay.
        """
        return pulumi.get(self, "base_delay")

    @base_delay.setter
    def base_delay(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "base_delay", value)

    @_builtins.property
    @pulumi.getter(name="maxBackoffTime")
    def max_backoff_time(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Max BackOff Time.
        """
        return pulumi.get(self, "max_backoff_time")

    @max_backoff_time.setter
    def max_backoff_time(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "max_backoff_time", value)

    @_builtins.property
    @pulumi.getter(name="retryCount")
    def retry_count(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Retry Count.
        """
        return pulumi.get(self, "retry_count")

    @retry_count.setter
    def retry_count(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "retry_count", value)


if not MYPY:
    class AwsConnectorFixedDelayBackoffStrategyArgsDict(TypedDict):
        fixed_backoff: NotRequired[pulumi.Input[_builtins.int]]
        """
        Fixed Backoff.
        """
        retry_count: NotRequired[pulumi.Input[_builtins.int]]
        """
        Retry Count.
        """
elif False:
    AwsConnectorFixedDelayBackoffStrategyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsConnectorFixedDelayBackoffStrategyArgs:
    def __init__(__self__, *,
                 fixed_backoff: Optional[pulumi.Input[_builtins.int]] = None,
                 retry_count: Optional[pulumi.Input[_builtins.int]] = None):
        """
        :param pulumi.Input[_builtins.int] fixed_backoff: Fixed Backoff.
        :param pulumi.Input[_builtins.int] retry_count: Retry Count.
        """
        if fixed_backoff is not None:
            pulumi.set(__self__, "fixed_backoff", fixed_backoff)
        if retry_count is not None:
            pulumi.set(__self__, "retry_count", retry_count)

    @_builtins.property
    @pulumi.getter(name="fixedBackoff")
    def fixed_backoff(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Fixed Backoff.
        """
        return pulumi.get(self, "fixed_backoff")

    @fixed_backoff.setter
    def fixed_backoff(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "fixed_backoff", value)

    @_builtins.property
    @pulumi.getter(name="retryCount")
    def retry_count(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Retry Count.
        """
        return pulumi.get(self, "retry_count")

    @retry_count.setter
    def retry_count(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "retry_count", value)


if not MYPY:
    class AwsConnectorFullJitterBackoffStrategyArgsDict(TypedDict):
        base_delay: NotRequired[pulumi.Input[_builtins.int]]
        """
        Base delay.
        """
        max_backoff_time: NotRequired[pulumi.Input[_builtins.int]]
        """
        Max BackOff Time.
        """
        retry_count: NotRequired[pulumi.Input[_builtins.int]]
        """
        Retry Count.
        """
elif False:
    AwsConnectorFullJitterBackoffStrategyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsConnectorFullJitterBackoffStrategyArgs:
    def __init__(__self__, *,
                 base_delay: Optional[pulumi.Input[_builtins.int]] = None,
                 max_backoff_time: Optional[pulumi.Input[_builtins.int]] = None,
                 retry_count: Optional[pulumi.Input[_builtins.int]] = None):
        """
        :param pulumi.Input[_builtins.int] base_delay: Base delay.
        :param pulumi.Input[_builtins.int] max_backoff_time: Max BackOff Time.
        :param pulumi.Input[_builtins.int] retry_count: Retry Count.
        """
        if base_delay is not None:
            pulumi.set(__self__, "base_delay", base_delay)
        if max_backoff_time is not None:
            pulumi.set(__self__, "max_backoff_time", max_backoff_time)
        if retry_count is not None:
            pulumi.set(__self__, "retry_count", retry_count)

    @_builtins.property
    @pulumi.getter(name="baseDelay")
    def base_delay(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Base delay.
        """
        return pulumi.get(self, "base_delay")

    @base_delay.setter
    def base_delay(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "base_delay", value)

    @_builtins.property
    @pulumi.getter(name="maxBackoffTime")
    def max_backoff_time(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Max BackOff Time.
        """
        return pulumi.get(self, "max_backoff_time")

    @max_backoff_time.setter
    def max_backoff_time(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "max_backoff_time", value)

    @_builtins.property
    @pulumi.getter(name="retryCount")
    def retry_count(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Retry Count.
        """
        return pulumi.get(self, "retry_count")

    @retry_count.setter
    def retry_count(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "retry_count", value)


if not MYPY:
    class AwsConnectorInheritFromDelegateArgsDict(TypedDict):
        delegate_selectors: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        The delegates to inherit the credentials from.
        """
        region: NotRequired[pulumi.Input[_builtins.str]]
        """
        Test Region to perform Connection test of AWS Connector 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}.
        """
elif False:
    AwsConnectorInheritFromDelegateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsConnectorInheritFromDelegateArgs:
    def __init__(__self__, *,
                 delegate_selectors: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
                 region: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: The delegates to inherit the credentials from.
        :param pulumi.Input[_builtins.str] region: Test Region to perform Connection test of AWS Connector 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}.
        """
        pulumi.set(__self__, "delegate_selectors", delegate_selectors)
        if region is not None:
            pulumi.set(__self__, "region", region)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        The delegates to inherit the credentials from.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "delegate_selectors", value)

    @_builtins.property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Test Region to perform Connection test of AWS Connector 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}.
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "region", value)


if not MYPY:
    class AwsConnectorIrsaArgsDict(TypedDict):
        delegate_selectors: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        The delegates to inherit the credentials from.
        """
        region: NotRequired[pulumi.Input[_builtins.str]]
        """
        Test Region to perform Connection test of AWS Connector 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}.
        """
elif False:
    AwsConnectorIrsaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsConnectorIrsaArgs:
    def __init__(__self__, *,
                 delegate_selectors: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
                 region: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: The delegates to inherit the credentials from.
        :param pulumi.Input[_builtins.str] region: Test Region to perform Connection test of AWS Connector 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}.
        """
        pulumi.set(__self__, "delegate_selectors", delegate_selectors)
        if region is not None:
            pulumi.set(__self__, "region", region)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        The delegates to inherit the credentials from.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "delegate_selectors", value)

    @_builtins.property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Test Region to perform Connection test of AWS Connector 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}.
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "region", value)


if not MYPY:
    class AwsConnectorManualArgsDict(TypedDict):
        secret_key_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        access_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        AWS access key.
        """
        access_key_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Connect only use delegates with these tags.
        """
        region: NotRequired[pulumi.Input[_builtins.str]]
        """
        Test Region to perform Connection test of AWS Connector 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}.
        """
        session_token_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the Harness secret containing the aws session token. 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}.
        """
elif False:
    AwsConnectorManualArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsConnectorManualArgs:
    def __init__(__self__, *,
                 secret_key_ref: pulumi.Input[_builtins.str],
                 access_key: Optional[pulumi.Input[_builtins.str]] = None,
                 access_key_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 region: Optional[pulumi.Input[_builtins.str]] = None,
                 session_token_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] secret_key_ref: 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}.
        :param pulumi.Input[_builtins.str] access_key: AWS access key.
        :param pulumi.Input[_builtins.str] access_key_ref: 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}.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: Connect only use delegates with these tags.
        :param pulumi.Input[_builtins.str] region: Test Region to perform Connection test of AWS Connector 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}.
        :param pulumi.Input[_builtins.str] session_token_ref: Reference to the Harness secret containing the aws session token. 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}.
        """
        pulumi.set(__self__, "secret_key_ref", secret_key_ref)
        if access_key is not None:
            pulumi.set(__self__, "access_key", access_key)
        if access_key_ref is not None:
            pulumi.set(__self__, "access_key_ref", access_key_ref)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)
        if region is not None:
            pulumi.set(__self__, "region", region)
        if session_token_ref is not None:
            pulumi.set(__self__, "session_token_ref", session_token_ref)

    @_builtins.property
    @pulumi.getter(name="secretKeyRef")
    def secret_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "secret_key_ref")

    @secret_key_ref.setter
    def secret_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="accessKey")
    def access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        AWS access key.
        """
        return pulumi.get(self, "access_key")

    @access_key.setter
    def access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "access_key", value)

    @_builtins.property
    @pulumi.getter(name="accessKeyRef")
    def access_key_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "access_key_ref")

    @access_key_ref.setter
    def access_key_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "access_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Connect only use delegates with these tags.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)

    @_builtins.property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Test Region to perform Connection test of AWS Connector 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}.
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "region", value)

    @_builtins.property
    @pulumi.getter(name="sessionTokenRef")
    def session_token_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the Harness secret containing the aws session token. 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}.
        """
        return pulumi.get(self, "session_token_ref")

    @session_token_ref.setter
    def session_token_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "session_token_ref", value)


if not MYPY:
    class AwsConnectorOidcAuthenticationArgsDict(TypedDict):
        iam_role_arn: pulumi.Input[_builtins.str]
        """
        The IAM Role to assume the credentials from.
        """
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        The delegates to inherit the credentials from.
        """
        region: NotRequired[pulumi.Input[_builtins.str]]
        """
        Test Region to perform Connection test of AWS Connector. 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}.
        """
elif False:
    AwsConnectorOidcAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsConnectorOidcAuthenticationArgs:
    def __init__(__self__, *,
                 iam_role_arn: pulumi.Input[_builtins.str],
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 region: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] iam_role_arn: The IAM Role to assume the credentials from.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: The delegates to inherit the credentials from.
        :param pulumi.Input[_builtins.str] region: Test Region to perform Connection test of AWS Connector. 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}.
        """
        pulumi.set(__self__, "iam_role_arn", iam_role_arn)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)
        if region is not None:
            pulumi.set(__self__, "region", region)

    @_builtins.property
    @pulumi.getter(name="iamRoleArn")
    def iam_role_arn(self) -> pulumi.Input[_builtins.str]:
        """
        The IAM Role to assume the credentials from.
        """
        return pulumi.get(self, "iam_role_arn")

    @iam_role_arn.setter
    def iam_role_arn(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "iam_role_arn", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        The delegates to inherit the credentials from.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)

    @_builtins.property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Test Region to perform Connection test of AWS Connector. 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}.
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "region", value)


if not MYPY:
    class AwsKmsConnectorCredentialsArgsDict(TypedDict):
        assume_role: NotRequired[pulumi.Input['AwsKmsConnectorCredentialsAssumeRoleArgsDict']]
        """
        Connect using STS assume role.
        """
        inherit_from_delegate: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Inherit the credentials from from the delegate.
        """
        manual: NotRequired[pulumi.Input['AwsKmsConnectorCredentialsManualArgsDict']]
        """
        Specify the AWS key and secret used for authenticating.
        """
        oidc_authentication: NotRequired[pulumi.Input['AwsKmsConnectorCredentialsOidcAuthenticationArgsDict']]
        """
        Connect using OIDC authentication.
        """
elif False:
    AwsKmsConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsKmsConnectorCredentialsArgs:
    def __init__(__self__, *,
                 assume_role: Optional[pulumi.Input['AwsKmsConnectorCredentialsAssumeRoleArgs']] = None,
                 inherit_from_delegate: Optional[pulumi.Input[_builtins.bool]] = None,
                 manual: Optional[pulumi.Input['AwsKmsConnectorCredentialsManualArgs']] = None,
                 oidc_authentication: Optional[pulumi.Input['AwsKmsConnectorCredentialsOidcAuthenticationArgs']] = None):
        """
        :param pulumi.Input['AwsKmsConnectorCredentialsAssumeRoleArgs'] assume_role: Connect using STS assume role.
        :param pulumi.Input[_builtins.bool] inherit_from_delegate: Inherit the credentials from from the delegate.
        :param pulumi.Input['AwsKmsConnectorCredentialsManualArgs'] manual: Specify the AWS key and secret used for authenticating.
        :param pulumi.Input['AwsKmsConnectorCredentialsOidcAuthenticationArgs'] oidc_authentication: Connect using OIDC authentication.
        """
        if assume_role is not None:
            pulumi.set(__self__, "assume_role", assume_role)
        if inherit_from_delegate is not None:
            pulumi.set(__self__, "inherit_from_delegate", inherit_from_delegate)
        if manual is not None:
            pulumi.set(__self__, "manual", manual)
        if oidc_authentication is not None:
            pulumi.set(__self__, "oidc_authentication", oidc_authentication)

    @_builtins.property
    @pulumi.getter(name="assumeRole")
    def assume_role(self) -> Optional[pulumi.Input['AwsKmsConnectorCredentialsAssumeRoleArgs']]:
        """
        Connect using STS assume role.
        """
        return pulumi.get(self, "assume_role")

    @assume_role.setter
    def assume_role(self, value: Optional[pulumi.Input['AwsKmsConnectorCredentialsAssumeRoleArgs']]):
        pulumi.set(self, "assume_role", value)

    @_builtins.property
    @pulumi.getter(name="inheritFromDelegate")
    def inherit_from_delegate(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Inherit the credentials from from the delegate.
        """
        return pulumi.get(self, "inherit_from_delegate")

    @inherit_from_delegate.setter
    def inherit_from_delegate(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "inherit_from_delegate", value)

    @_builtins.property
    @pulumi.getter
    def manual(self) -> Optional[pulumi.Input['AwsKmsConnectorCredentialsManualArgs']]:
        """
        Specify the AWS key and secret used for authenticating.
        """
        return pulumi.get(self, "manual")

    @manual.setter
    def manual(self, value: Optional[pulumi.Input['AwsKmsConnectorCredentialsManualArgs']]):
        pulumi.set(self, "manual", value)

    @_builtins.property
    @pulumi.getter(name="oidcAuthentication")
    def oidc_authentication(self) -> Optional[pulumi.Input['AwsKmsConnectorCredentialsOidcAuthenticationArgs']]:
        """
        Connect using OIDC authentication.
        """
        return pulumi.get(self, "oidc_authentication")

    @oidc_authentication.setter
    def oidc_authentication(self, value: Optional[pulumi.Input['AwsKmsConnectorCredentialsOidcAuthenticationArgs']]):
        pulumi.set(self, "oidc_authentication", value)


if not MYPY:
    class AwsKmsConnectorCredentialsAssumeRoleArgsDict(TypedDict):
        duration: pulumi.Input[_builtins.int]
        """
        The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the client request body. The minimum value is 1 hour.
        """
        role_arn: pulumi.Input[_builtins.str]
        """
        The ARN of the role to assume.
        """
        external_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
elif False:
    AwsKmsConnectorCredentialsAssumeRoleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsKmsConnectorCredentialsAssumeRoleArgs:
    def __init__(__self__, *,
                 duration: pulumi.Input[_builtins.int],
                 role_arn: pulumi.Input[_builtins.str],
                 external_id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.int] duration: The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the client request body. The minimum value is 1 hour.
        :param pulumi.Input[_builtins.str] role_arn: The ARN of the role to assume.
        :param pulumi.Input[_builtins.str] external_id: If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
        pulumi.set(__self__, "duration", duration)
        pulumi.set(__self__, "role_arn", role_arn)
        if external_id is not None:
            pulumi.set(__self__, "external_id", external_id)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> pulumi.Input[_builtins.int]:
        """
        The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the client request body. The minimum value is 1 hour.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: pulumi.Input[_builtins.int]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter(name="roleArn")
    def role_arn(self) -> pulumi.Input[_builtins.str]:
        """
        The ARN of the role to assume.
        """
        return pulumi.get(self, "role_arn")

    @role_arn.setter
    def role_arn(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "role_arn", value)

    @_builtins.property
    @pulumi.getter(name="externalId")
    def external_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
        return pulumi.get(self, "external_id")

    @external_id.setter
    def external_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "external_id", value)


if not MYPY:
    class AwsKmsConnectorCredentialsManualArgsDict(TypedDict):
        access_key_ref: pulumi.Input[_builtins.str]
        """
        The 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}.
        """
        secret_key_ref: pulumi.Input[_builtins.str]
        """
        The 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}.
        """
elif False:
    AwsKmsConnectorCredentialsManualArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsKmsConnectorCredentialsManualArgs:
    def __init__(__self__, *,
                 access_key_ref: pulumi.Input[_builtins.str],
                 secret_key_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] access_key_ref: The 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}.
        :param pulumi.Input[_builtins.str] secret_key_ref: The 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}.
        """
        pulumi.set(__self__, "access_key_ref", access_key_ref)
        pulumi.set(__self__, "secret_key_ref", secret_key_ref)

    @_builtins.property
    @pulumi.getter(name="accessKeyRef")
    def access_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        The 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}.
        """
        return pulumi.get(self, "access_key_ref")

    @access_key_ref.setter
    def access_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "access_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="secretKeyRef")
    def secret_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        The 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}.
        """
        return pulumi.get(self, "secret_key_ref")

    @secret_key_ref.setter
    def secret_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_key_ref", value)


if not MYPY:
    class AwsKmsConnectorCredentialsOidcAuthenticationArgsDict(TypedDict):
        iam_role_arn: pulumi.Input[_builtins.str]
        """
        The ARN of the IAM role to assume.
        """
elif False:
    AwsKmsConnectorCredentialsOidcAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsKmsConnectorCredentialsOidcAuthenticationArgs:
    def __init__(__self__, *,
                 iam_role_arn: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] iam_role_arn: The ARN of the IAM role to assume.
        """
        pulumi.set(__self__, "iam_role_arn", iam_role_arn)

    @_builtins.property
    @pulumi.getter(name="iamRoleArn")
    def iam_role_arn(self) -> pulumi.Input[_builtins.str]:
        """
        The ARN of the IAM role to assume.
        """
        return pulumi.get(self, "iam_role_arn")

    @iam_role_arn.setter
    def iam_role_arn(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "iam_role_arn", value)


if not MYPY:
    class AwsSecretManagerConnectorCredentialsArgsDict(TypedDict):
        assume_role: NotRequired[pulumi.Input['AwsSecretManagerConnectorCredentialsAssumeRoleArgsDict']]
        """
        Connect using STS assume role.
        """
        inherit_from_delegate: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Inherit the credentials from from the delegate.
        """
        manual: NotRequired[pulumi.Input['AwsSecretManagerConnectorCredentialsManualArgsDict']]
        """
        Specify the AWS key and secret used for authenticating.
        """
        oidc_authentication: NotRequired[pulumi.Input['AwsSecretManagerConnectorCredentialsOidcAuthenticationArgsDict']]
        """
        Authentication using harness oidc.
        """
elif False:
    AwsSecretManagerConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsSecretManagerConnectorCredentialsArgs:
    def __init__(__self__, *,
                 assume_role: Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsAssumeRoleArgs']] = None,
                 inherit_from_delegate: Optional[pulumi.Input[_builtins.bool]] = None,
                 manual: Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsManualArgs']] = None,
                 oidc_authentication: Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsOidcAuthenticationArgs']] = None):
        """
        :param pulumi.Input['AwsSecretManagerConnectorCredentialsAssumeRoleArgs'] assume_role: Connect using STS assume role.
        :param pulumi.Input[_builtins.bool] inherit_from_delegate: Inherit the credentials from from the delegate.
        :param pulumi.Input['AwsSecretManagerConnectorCredentialsManualArgs'] manual: Specify the AWS key and secret used for authenticating.
        :param pulumi.Input['AwsSecretManagerConnectorCredentialsOidcAuthenticationArgs'] oidc_authentication: Authentication using harness oidc.
        """
        if assume_role is not None:
            pulumi.set(__self__, "assume_role", assume_role)
        if inherit_from_delegate is not None:
            pulumi.set(__self__, "inherit_from_delegate", inherit_from_delegate)
        if manual is not None:
            pulumi.set(__self__, "manual", manual)
        if oidc_authentication is not None:
            pulumi.set(__self__, "oidc_authentication", oidc_authentication)

    @_builtins.property
    @pulumi.getter(name="assumeRole")
    def assume_role(self) -> Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsAssumeRoleArgs']]:
        """
        Connect using STS assume role.
        """
        return pulumi.get(self, "assume_role")

    @assume_role.setter
    def assume_role(self, value: Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsAssumeRoleArgs']]):
        pulumi.set(self, "assume_role", value)

    @_builtins.property
    @pulumi.getter(name="inheritFromDelegate")
    def inherit_from_delegate(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Inherit the credentials from from the delegate.
        """
        return pulumi.get(self, "inherit_from_delegate")

    @inherit_from_delegate.setter
    def inherit_from_delegate(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "inherit_from_delegate", value)

    @_builtins.property
    @pulumi.getter
    def manual(self) -> Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsManualArgs']]:
        """
        Specify the AWS key and secret used for authenticating.
        """
        return pulumi.get(self, "manual")

    @manual.setter
    def manual(self, value: Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsManualArgs']]):
        pulumi.set(self, "manual", value)

    @_builtins.property
    @pulumi.getter(name="oidcAuthentication")
    def oidc_authentication(self) -> Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsOidcAuthenticationArgs']]:
        """
        Authentication using harness oidc.
        """
        return pulumi.get(self, "oidc_authentication")

    @oidc_authentication.setter
    def oidc_authentication(self, value: Optional[pulumi.Input['AwsSecretManagerConnectorCredentialsOidcAuthenticationArgs']]):
        pulumi.set(self, "oidc_authentication", value)


if not MYPY:
    class AwsSecretManagerConnectorCredentialsAssumeRoleArgsDict(TypedDict):
        duration: pulumi.Input[_builtins.int]
        """
        The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the client request body. The minimum value is 1 hour.
        """
        role_arn: pulumi.Input[_builtins.str]
        """
        The ARN of the role to assume.
        """
        external_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
elif False:
    AwsSecretManagerConnectorCredentialsAssumeRoleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsSecretManagerConnectorCredentialsAssumeRoleArgs:
    def __init__(__self__, *,
                 duration: pulumi.Input[_builtins.int],
                 role_arn: pulumi.Input[_builtins.str],
                 external_id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.int] duration: The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the client request body. The minimum value is 1 hour.
        :param pulumi.Input[_builtins.str] role_arn: The ARN of the role to assume.
        :param pulumi.Input[_builtins.str] external_id: If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
        pulumi.set(__self__, "duration", duration)
        pulumi.set(__self__, "role_arn", role_arn)
        if external_id is not None:
            pulumi.set(__self__, "external_id", external_id)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> pulumi.Input[_builtins.int]:
        """
        The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the client request body. The minimum value is 1 hour.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: pulumi.Input[_builtins.int]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter(name="roleArn")
    def role_arn(self) -> pulumi.Input[_builtins.str]:
        """
        The ARN of the role to assume.
        """
        return pulumi.get(self, "role_arn")

    @role_arn.setter
    def role_arn(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "role_arn", value)

    @_builtins.property
    @pulumi.getter(name="externalId")
    def external_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
        """
        return pulumi.get(self, "external_id")

    @external_id.setter
    def external_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "external_id", value)


if not MYPY:
    class AwsSecretManagerConnectorCredentialsManualArgsDict(TypedDict):
        secret_key_ref: pulumi.Input[_builtins.str]
        """
        The 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}.
        """
        access_key_plain_text: NotRequired[pulumi.Input[_builtins.str]]
        """
        The plain text AWS access key.
        """
        access_key_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        The 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}.
        """
elif False:
    AwsSecretManagerConnectorCredentialsManualArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsSecretManagerConnectorCredentialsManualArgs:
    def __init__(__self__, *,
                 secret_key_ref: pulumi.Input[_builtins.str],
                 access_key_plain_text: Optional[pulumi.Input[_builtins.str]] = None,
                 access_key_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] secret_key_ref: The 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}.
        :param pulumi.Input[_builtins.str] access_key_plain_text: The plain text AWS access key.
        :param pulumi.Input[_builtins.str] access_key_ref: The 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}.
        """
        pulumi.set(__self__, "secret_key_ref", secret_key_ref)
        if access_key_plain_text is not None:
            pulumi.set(__self__, "access_key_plain_text", access_key_plain_text)
        if access_key_ref is not None:
            pulumi.set(__self__, "access_key_ref", access_key_ref)

    @_builtins.property
    @pulumi.getter(name="secretKeyRef")
    def secret_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        The 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}.
        """
        return pulumi.get(self, "secret_key_ref")

    @secret_key_ref.setter
    def secret_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="accessKeyPlainText")
    def access_key_plain_text(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The plain text AWS access key.
        """
        return pulumi.get(self, "access_key_plain_text")

    @access_key_plain_text.setter
    def access_key_plain_text(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "access_key_plain_text", value)

    @_builtins.property
    @pulumi.getter(name="accessKeyRef")
    def access_key_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The 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}.
        """
        return pulumi.get(self, "access_key_ref")

    @access_key_ref.setter
    def access_key_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "access_key_ref", value)


if not MYPY:
    class AwsSecretManagerConnectorCredentialsOidcAuthenticationArgsDict(TypedDict):
        iam_role_arn: pulumi.Input[_builtins.str]
        """
        The IAM role ARN.
        """
elif False:
    AwsSecretManagerConnectorCredentialsOidcAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AwsSecretManagerConnectorCredentialsOidcAuthenticationArgs:
    def __init__(__self__, *,
                 iam_role_arn: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] iam_role_arn: The IAM role ARN.
        """
        pulumi.set(__self__, "iam_role_arn", iam_role_arn)

    @_builtins.property
    @pulumi.getter(name="iamRoleArn")
    def iam_role_arn(self) -> pulumi.Input[_builtins.str]:
        """
        The IAM role ARN.
        """
        return pulumi.get(self, "iam_role_arn")

    @iam_role_arn.setter
    def iam_role_arn(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "iam_role_arn", value)


if not MYPY:
    class AzureCloudCostConnectorBillingExportSpec2ArgsDict(TypedDict):
        billing_type: pulumi.Input[_builtins.str]
        """
        Billing type.
        """
        container_name: pulumi.Input[_builtins.str]
        """
        Name of the container.
        """
        directory_name: pulumi.Input[_builtins.str]
        """
        Name of the directory.
        """
        report_name: pulumi.Input[_builtins.str]
        """
        Name of the report.
        """
        storage_account_name: pulumi.Input[_builtins.str]
        """
        Name of the storage account.
        """
        subscription_id: pulumi.Input[_builtins.str]
        """
        Subsription Id.
        """
elif False:
    AzureCloudCostConnectorBillingExportSpec2ArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudCostConnectorBillingExportSpec2Args:
    def __init__(__self__, *,
                 billing_type: pulumi.Input[_builtins.str],
                 container_name: pulumi.Input[_builtins.str],
                 directory_name: pulumi.Input[_builtins.str],
                 report_name: pulumi.Input[_builtins.str],
                 storage_account_name: pulumi.Input[_builtins.str],
                 subscription_id: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] billing_type: Billing type.
        :param pulumi.Input[_builtins.str] container_name: Name of the container.
        :param pulumi.Input[_builtins.str] directory_name: Name of the directory.
        :param pulumi.Input[_builtins.str] report_name: Name of the report.
        :param pulumi.Input[_builtins.str] storage_account_name: Name of the storage account.
        :param pulumi.Input[_builtins.str] subscription_id: Subsription Id.
        """
        pulumi.set(__self__, "billing_type", billing_type)
        pulumi.set(__self__, "container_name", container_name)
        pulumi.set(__self__, "directory_name", directory_name)
        pulumi.set(__self__, "report_name", report_name)
        pulumi.set(__self__, "storage_account_name", storage_account_name)
        pulumi.set(__self__, "subscription_id", subscription_id)

    @_builtins.property
    @pulumi.getter(name="billingType")
    def billing_type(self) -> pulumi.Input[_builtins.str]:
        """
        Billing type.
        """
        return pulumi.get(self, "billing_type")

    @billing_type.setter
    def billing_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "billing_type", value)

    @_builtins.property
    @pulumi.getter(name="containerName")
    def container_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the container.
        """
        return pulumi.get(self, "container_name")

    @container_name.setter
    def container_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "container_name", value)

    @_builtins.property
    @pulumi.getter(name="directoryName")
    def directory_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the directory.
        """
        return pulumi.get(self, "directory_name")

    @directory_name.setter
    def directory_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "directory_name", value)

    @_builtins.property
    @pulumi.getter(name="reportName")
    def report_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the report.
        """
        return pulumi.get(self, "report_name")

    @report_name.setter
    def report_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "report_name", value)

    @_builtins.property
    @pulumi.getter(name="storageAccountName")
    def storage_account_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the storage account.
        """
        return pulumi.get(self, "storage_account_name")

    @storage_account_name.setter
    def storage_account_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "storage_account_name", value)

    @_builtins.property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> pulumi.Input[_builtins.str]:
        """
        Subsription Id.
        """
        return pulumi.get(self, "subscription_id")

    @subscription_id.setter
    def subscription_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "subscription_id", value)


if not MYPY:
    class AzureCloudCostConnectorBillingExportSpecArgsDict(TypedDict):
        billing_type: pulumi.Input[_builtins.str]
        """
        Billing type.
        """
        container_name: pulumi.Input[_builtins.str]
        """
        Name of the container.
        """
        directory_name: pulumi.Input[_builtins.str]
        """
        Name of the directory.
        """
        report_name: pulumi.Input[_builtins.str]
        """
        Name of the report.
        """
        storage_account_name: pulumi.Input[_builtins.str]
        """
        Name of the storage account.
        """
        subscription_id: pulumi.Input[_builtins.str]
        """
        Subsription Id.
        """
elif False:
    AzureCloudCostConnectorBillingExportSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudCostConnectorBillingExportSpecArgs:
    def __init__(__self__, *,
                 billing_type: pulumi.Input[_builtins.str],
                 container_name: pulumi.Input[_builtins.str],
                 directory_name: pulumi.Input[_builtins.str],
                 report_name: pulumi.Input[_builtins.str],
                 storage_account_name: pulumi.Input[_builtins.str],
                 subscription_id: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] billing_type: Billing type.
        :param pulumi.Input[_builtins.str] container_name: Name of the container.
        :param pulumi.Input[_builtins.str] directory_name: Name of the directory.
        :param pulumi.Input[_builtins.str] report_name: Name of the report.
        :param pulumi.Input[_builtins.str] storage_account_name: Name of the storage account.
        :param pulumi.Input[_builtins.str] subscription_id: Subsription Id.
        """
        pulumi.set(__self__, "billing_type", billing_type)
        pulumi.set(__self__, "container_name", container_name)
        pulumi.set(__self__, "directory_name", directory_name)
        pulumi.set(__self__, "report_name", report_name)
        pulumi.set(__self__, "storage_account_name", storage_account_name)
        pulumi.set(__self__, "subscription_id", subscription_id)

    @_builtins.property
    @pulumi.getter(name="billingType")
    def billing_type(self) -> pulumi.Input[_builtins.str]:
        """
        Billing type.
        """
        return pulumi.get(self, "billing_type")

    @billing_type.setter
    def billing_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "billing_type", value)

    @_builtins.property
    @pulumi.getter(name="containerName")
    def container_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the container.
        """
        return pulumi.get(self, "container_name")

    @container_name.setter
    def container_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "container_name", value)

    @_builtins.property
    @pulumi.getter(name="directoryName")
    def directory_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the directory.
        """
        return pulumi.get(self, "directory_name")

    @directory_name.setter
    def directory_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "directory_name", value)

    @_builtins.property
    @pulumi.getter(name="reportName")
    def report_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the report.
        """
        return pulumi.get(self, "report_name")

    @report_name.setter
    def report_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "report_name", value)

    @_builtins.property
    @pulumi.getter(name="storageAccountName")
    def storage_account_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the storage account.
        """
        return pulumi.get(self, "storage_account_name")

    @storage_account_name.setter
    def storage_account_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "storage_account_name", value)

    @_builtins.property
    @pulumi.getter(name="subscriptionId")
    def subscription_id(self) -> pulumi.Input[_builtins.str]:
        """
        Subsription Id.
        """
        return pulumi.get(self, "subscription_id")

    @subscription_id.setter
    def subscription_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "subscription_id", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        Type can be InheritFromDelegate, ManualConfig or OidcAuthentication
        """
        azure_inherit_from_delegate_details: NotRequired[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgsDict']]
        """
        Authenticate to Azure Cloud Provider using details inheriting from delegate.
        """
        azure_manual_details: NotRequired[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsArgsDict']]
        """
        Authenticate to Azure Cloud Provider using manual details.
        """
        azure_oidc_spec: NotRequired[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureOidcSpecArgsDict']]
        """
        Authenticate to Azure Cloud Provider using OIDC.
        """
elif False:
    AzureCloudProviderConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 azure_inherit_from_delegate_details: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgs']] = None,
                 azure_manual_details: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsArgs']] = None,
                 azure_oidc_spec: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureOidcSpecArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] type: Type can be InheritFromDelegate, ManualConfig or OidcAuthentication
        :param pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgs'] azure_inherit_from_delegate_details: Authenticate to Azure Cloud Provider using details inheriting from delegate.
        :param pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsArgs'] azure_manual_details: Authenticate to Azure Cloud Provider using manual details.
        :param pulumi.Input['AzureCloudProviderConnectorCredentialsAzureOidcSpecArgs'] azure_oidc_spec: Authenticate to Azure Cloud Provider using OIDC.
        """
        pulumi.set(__self__, "type", type)
        if azure_inherit_from_delegate_details is not None:
            pulumi.set(__self__, "azure_inherit_from_delegate_details", azure_inherit_from_delegate_details)
        if azure_manual_details is not None:
            pulumi.set(__self__, "azure_manual_details", azure_manual_details)
        if azure_oidc_spec is not None:
            pulumi.set(__self__, "azure_oidc_spec", azure_oidc_spec)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type can be InheritFromDelegate, ManualConfig or OidcAuthentication
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="azureInheritFromDelegateDetails")
    def azure_inherit_from_delegate_details(self) -> Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgs']]:
        """
        Authenticate to Azure Cloud Provider using details inheriting from delegate.
        """
        return pulumi.get(self, "azure_inherit_from_delegate_details")

    @azure_inherit_from_delegate_details.setter
    def azure_inherit_from_delegate_details(self, value: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgs']]):
        pulumi.set(self, "azure_inherit_from_delegate_details", value)

    @_builtins.property
    @pulumi.getter(name="azureManualDetails")
    def azure_manual_details(self) -> Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsArgs']]:
        """
        Authenticate to Azure Cloud Provider using manual details.
        """
        return pulumi.get(self, "azure_manual_details")

    @azure_manual_details.setter
    def azure_manual_details(self, value: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsArgs']]):
        pulumi.set(self, "azure_manual_details", value)

    @_builtins.property
    @pulumi.getter(name="azureOidcSpec")
    def azure_oidc_spec(self) -> Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureOidcSpecArgs']]:
        """
        Authenticate to Azure Cloud Provider using OIDC.
        """
        return pulumi.get(self, "azure_oidc_spec")

    @azure_oidc_spec.setter
    def azure_oidc_spec(self, value: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureOidcSpecArgs']]):
        pulumi.set(self, "azure_oidc_spec", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgsDict(TypedDict):
        auth: NotRequired[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgsDict']]
        """
        Auth to authenticate to Azure Cloud Provider using details inheriting from delegate.
        """
elif False:
    AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsArgs:
    def __init__(__self__, *,
                 auth: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgs']] = None):
        """
        :param pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgs'] auth: Auth to authenticate to Azure Cloud Provider using details inheriting from delegate.
        """
        if auth is not None:
            pulumi.set(__self__, "auth", auth)

    @_builtins.property
    @pulumi.getter
    def auth(self) -> Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgs']]:
        """
        Auth to authenticate to Azure Cloud Provider using details inheriting from delegate.
        """
        return pulumi.get(self, "auth")

    @auth.setter
    def auth(self, value: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgs']]):
        pulumi.set(self, "auth", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        Type can either be SystemAssignedManagedIdentity or UserAssignedManagedIdentity.
        """
        azure_msi_auth_ua: NotRequired[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgsDict']]
        """
        Azure UserAssigned MSI auth details.
        """
elif False:
    AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 azure_msi_auth_ua: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] type: Type can either be SystemAssignedManagedIdentity or UserAssignedManagedIdentity.
        :param pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgs'] azure_msi_auth_ua: Azure UserAssigned MSI auth details.
        """
        pulumi.set(__self__, "type", type)
        if azure_msi_auth_ua is not None:
            pulumi.set(__self__, "azure_msi_auth_ua", azure_msi_auth_ua)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type can either be SystemAssignedManagedIdentity or UserAssignedManagedIdentity.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="azureMsiAuthUa")
    def azure_msi_auth_ua(self) -> Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgs']]:
        """
        Azure UserAssigned MSI auth details.
        """
        return pulumi.get(self, "azure_msi_auth_ua")

    @azure_msi_auth_ua.setter
    def azure_msi_auth_ua(self, value: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgs']]):
        pulumi.set(self, "azure_msi_auth_ua", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgsDict(TypedDict):
        client_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Client Id of the ManagedIdentity resource.
        """
elif False:
    AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUaArgs:
    def __init__(__self__, *,
                 client_id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] client_id: Client Id of the ManagedIdentity resource.
        """
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)

    @_builtins.property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Client Id of the ManagedIdentity resource.
        """
        return pulumi.get(self, "client_id")

    @client_id.setter
    def client_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "client_id", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsAzureManualDetailsArgsDict(TypedDict):
        application_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Application ID of the Azure App.
        """
        auth: NotRequired[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgsDict']]
        """
        Contains Azure auth details.
        """
        tenant_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Azure Active Directory (AAD) directory ID where you created your application.
        """
elif False:
    AzureCloudProviderConnectorCredentialsAzureManualDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsAzureManualDetailsArgs:
    def __init__(__self__, *,
                 application_id: Optional[pulumi.Input[_builtins.str]] = None,
                 auth: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgs']] = None,
                 tenant_id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] application_id: Application ID of the Azure App.
        :param pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgs'] auth: Contains Azure auth details.
        :param pulumi.Input[_builtins.str] tenant_id: The Azure Active Directory (AAD) directory ID where you created your application.
        """
        if application_id is not None:
            pulumi.set(__self__, "application_id", application_id)
        if auth is not None:
            pulumi.set(__self__, "auth", auth)
        if tenant_id is not None:
            pulumi.set(__self__, "tenant_id", tenant_id)

    @_builtins.property
    @pulumi.getter(name="applicationId")
    def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Application ID of the Azure App.
        """
        return pulumi.get(self, "application_id")

    @application_id.setter
    def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "application_id", value)

    @_builtins.property
    @pulumi.getter
    def auth(self) -> Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgs']]:
        """
        Contains Azure auth details.
        """
        return pulumi.get(self, "auth")

    @auth.setter
    def auth(self, value: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgs']]):
        pulumi.set(self, "auth", value)

    @_builtins.property
    @pulumi.getter(name="tenantId")
    def tenant_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Azure Active Directory (AAD) directory ID where you created your application.
        """
        return pulumi.get(self, "tenant_id")

    @tenant_id.setter
    def tenant_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tenant_id", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgsDict(TypedDict):
        azure_client_key_cert: NotRequired[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgsDict']]
        """
        Azure client key certificate details.
        """
        azure_client_secret_key: NotRequired[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgsDict']]
        """
        Azure Client Secret Key details.
        """
        type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Type can either be Certificate or Secret.
        """
elif False:
    AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthArgs:
    def __init__(__self__, *,
                 azure_client_key_cert: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgs']] = None,
                 azure_client_secret_key: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgs']] = None,
                 type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgs'] azure_client_key_cert: Azure client key certificate details.
        :param pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgs'] azure_client_secret_key: Azure Client Secret Key details.
        :param pulumi.Input[_builtins.str] type: Type can either be Certificate or Secret.
        """
        if azure_client_key_cert is not None:
            pulumi.set(__self__, "azure_client_key_cert", azure_client_key_cert)
        if azure_client_secret_key is not None:
            pulumi.set(__self__, "azure_client_secret_key", azure_client_secret_key)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="azureClientKeyCert")
    def azure_client_key_cert(self) -> Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgs']]:
        """
        Azure client key certificate details.
        """
        return pulumi.get(self, "azure_client_key_cert")

    @azure_client_key_cert.setter
    def azure_client_key_cert(self, value: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgs']]):
        pulumi.set(self, "azure_client_key_cert", value)

    @_builtins.property
    @pulumi.getter(name="azureClientSecretKey")
    def azure_client_secret_key(self) -> Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgs']]:
        """
        Azure Client Secret Key details.
        """
        return pulumi.get(self, "azure_client_secret_key")

    @azure_client_secret_key.setter
    def azure_client_secret_key(self, value: Optional[pulumi.Input['AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgs']]):
        pulumi.set(self, "azure_client_secret_key", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Type can either be Certificate or Secret.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgsDict(TypedDict):
        certificate_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference of the secret for the certificate. 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}.
        """
elif False:
    AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCertArgs:
    def __init__(__self__, *,
                 certificate_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] certificate_ref: Reference of the secret for the certificate. 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}.
        """
        if certificate_ref is not None:
            pulumi.set(__self__, "certificate_ref", certificate_ref)

    @_builtins.property
    @pulumi.getter(name="certificateRef")
    def certificate_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference of the secret for the certificate. 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}.
        """
        return pulumi.get(self, "certificate_ref")

    @certificate_ref.setter
    def certificate_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "certificate_ref", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgsDict(TypedDict):
        secret_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference of the secret for 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}.
        """
elif False:
    AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKeyArgs:
    def __init__(__self__, *,
                 secret_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] secret_ref: Reference of the secret for 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}.
        """
        if secret_ref is not None:
            pulumi.set(__self__, "secret_ref", secret_ref)

    @_builtins.property
    @pulumi.getter(name="secretRef")
    def secret_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference of the secret for 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}.
        """
        return pulumi.get(self, "secret_ref")

    @secret_ref.setter
    def secret_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "secret_ref", value)


if not MYPY:
    class AzureCloudProviderConnectorCredentialsAzureOidcSpecArgsDict(TypedDict):
        application_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Application ID of the Azure App.
        """
        audience: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Azure Audience.
        """
        tenant_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Azure Active Directory (AAD) directory ID where you created your application.
        """
elif False:
    AzureCloudProviderConnectorCredentialsAzureOidcSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AzureCloudProviderConnectorCredentialsAzureOidcSpecArgs:
    def __init__(__self__, *,
                 application_id: Optional[pulumi.Input[_builtins.str]] = None,
                 audience: Optional[pulumi.Input[_builtins.str]] = None,
                 tenant_id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] application_id: Application ID of the Azure App.
        :param pulumi.Input[_builtins.str] audience: The Azure Audience.
        :param pulumi.Input[_builtins.str] tenant_id: The Azure Active Directory (AAD) directory ID where you created your application.
        """
        if application_id is not None:
            pulumi.set(__self__, "application_id", application_id)
        if audience is not None:
            pulumi.set(__self__, "audience", audience)
        if tenant_id is not None:
            pulumi.set(__self__, "tenant_id", tenant_id)

    @_builtins.property
    @pulumi.getter(name="applicationId")
    def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Application ID of the Azure App.
        """
        return pulumi.get(self, "application_id")

    @application_id.setter
    def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "application_id", value)

    @_builtins.property
    @pulumi.getter
    def audience(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Azure Audience.
        """
        return pulumi.get(self, "audience")

    @audience.setter
    def audience(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "audience", value)

    @_builtins.property
    @pulumi.getter(name="tenantId")
    def tenant_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Azure Active Directory (AAD) directory ID where you created your application.
        """
        return pulumi.get(self, "tenant_id")

    @tenant_id.setter
    def tenant_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tenant_id", value)


if not MYPY:
    class BitbucketConnectorApiAuthenticationArgsDict(TypedDict):
        token_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        The username used for connecting to the api.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    BitbucketConnectorApiAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class BitbucketConnectorApiAuthenticationArgs:
    def __init__(__self__, *,
                 token_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] token_ref: 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}.
        :param pulumi.Input[_builtins.str] username: The username used for connecting to the api.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "token_ref", token_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "token_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The username used for connecting to the api.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class BitbucketConnectorCredentialsArgsDict(TypedDict):
        http: NotRequired[pulumi.Input['BitbucketConnectorCredentialsHttpArgsDict']]
        """
        Authenticate using Username and password over http(s) for the connection.
        """
        ssh: NotRequired[pulumi.Input['BitbucketConnectorCredentialsSshArgsDict']]
        """
        Authenticate using SSH for the connection.
        """
elif False:
    BitbucketConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class BitbucketConnectorCredentialsArgs:
    def __init__(__self__, *,
                 http: Optional[pulumi.Input['BitbucketConnectorCredentialsHttpArgs']] = None,
                 ssh: Optional[pulumi.Input['BitbucketConnectorCredentialsSshArgs']] = None):
        """
        :param pulumi.Input['BitbucketConnectorCredentialsHttpArgs'] http: Authenticate using Username and password over http(s) for the connection.
        :param pulumi.Input['BitbucketConnectorCredentialsSshArgs'] ssh: Authenticate using SSH for the connection.
        """
        if http is not None:
            pulumi.set(__self__, "http", http)
        if ssh is not None:
            pulumi.set(__self__, "ssh", ssh)

    @_builtins.property
    @pulumi.getter
    def http(self) -> Optional[pulumi.Input['BitbucketConnectorCredentialsHttpArgs']]:
        """
        Authenticate using Username and password over http(s) for the connection.
        """
        return pulumi.get(self, "http")

    @http.setter
    def http(self, value: Optional[pulumi.Input['BitbucketConnectorCredentialsHttpArgs']]):
        pulumi.set(self, "http", value)

    @_builtins.property
    @pulumi.getter
    def ssh(self) -> Optional[pulumi.Input['BitbucketConnectorCredentialsSshArgs']]:
        """
        Authenticate using SSH for the connection.
        """
        return pulumi.get(self, "ssh")

    @ssh.setter
    def ssh(self, value: Optional[pulumi.Input['BitbucketConnectorCredentialsSshArgs']]):
        pulumi.set(self, "ssh", value)


if not MYPY:
    class BitbucketConnectorCredentialsHttpArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    BitbucketConnectorCredentialsHttpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class BitbucketConnectorCredentialsHttpArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class BitbucketConnectorCredentialsSshArgsDict(TypedDict):
        ssh_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to the Harness secret containing the ssh 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}.
        """
elif False:
    BitbucketConnectorCredentialsSshArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class BitbucketConnectorCredentialsSshArgs:
    def __init__(__self__, *,
                 ssh_key_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] ssh_key_ref: Reference to the Harness secret containing the ssh 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}.
        """
        pulumi.set(__self__, "ssh_key_ref", ssh_key_ref)

    @_builtins.property
    @pulumi.getter(name="sshKeyRef")
    def ssh_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the Harness secret containing the ssh 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}.
        """
        return pulumi.get(self, "ssh_key_ref")

    @ssh_key_ref.setter
    def ssh_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "ssh_key_ref", value)


if not MYPY:
    class CentralNotificationChannelChannelArgsDict(TypedDict):
        api_key: NotRequired[pulumi.Input[_builtins.str]]
        datadog_urls: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        email_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        execute_on_delegate: NotRequired[pulumi.Input[_builtins.bool]]
        headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['CentralNotificationChannelChannelHeaderArgsDict']]]]
        ms_team_keys: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        pager_duty_integration_keys: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        slack_webhook_urls: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        user_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input['CentralNotificationChannelChannelUserGroupArgsDict']]]]
        webhook_urls: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
elif False:
    CentralNotificationChannelChannelArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CentralNotificationChannelChannelArgs:
    def __init__(__self__, *,
                 api_key: Optional[pulumi.Input[_builtins.str]] = None,
                 datadog_urls: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 email_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 execute_on_delegate: Optional[pulumi.Input[_builtins.bool]] = None,
                 headers: Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationChannelChannelHeaderArgs']]]] = None,
                 ms_team_keys: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pager_duty_integration_keys: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 slack_webhook_urls: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 user_groups: Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationChannelChannelUserGroupArgs']]]] = None,
                 webhook_urls: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        if api_key is not None:
            pulumi.set(__self__, "api_key", api_key)
        if datadog_urls is not None:
            pulumi.set(__self__, "datadog_urls", datadog_urls)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)
        if email_ids is not None:
            pulumi.set(__self__, "email_ids", email_ids)
        if execute_on_delegate is not None:
            pulumi.set(__self__, "execute_on_delegate", execute_on_delegate)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if ms_team_keys is not None:
            pulumi.set(__self__, "ms_team_keys", ms_team_keys)
        if pager_duty_integration_keys is not None:
            pulumi.set(__self__, "pager_duty_integration_keys", pager_duty_integration_keys)
        if slack_webhook_urls is not None:
            pulumi.set(__self__, "slack_webhook_urls", slack_webhook_urls)
        if user_groups is not None:
            pulumi.set(__self__, "user_groups", user_groups)
        if webhook_urls is not None:
            pulumi.set(__self__, "webhook_urls", webhook_urls)

    @_builtins.property
    @pulumi.getter(name="apiKey")
    def api_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "api_key")

    @api_key.setter
    def api_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api_key", value)

    @_builtins.property
    @pulumi.getter(name="datadogUrls")
    def datadog_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "datadog_urls")

    @datadog_urls.setter
    def datadog_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "datadog_urls", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)

    @_builtins.property
    @pulumi.getter(name="emailIds")
    def email_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "email_ids")

    @email_ids.setter
    def email_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "email_ids", value)

    @_builtins.property
    @pulumi.getter(name="executeOnDelegate")
    def execute_on_delegate(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "execute_on_delegate")

    @execute_on_delegate.setter
    def execute_on_delegate(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "execute_on_delegate", value)

    @_builtins.property
    @pulumi.getter
    def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationChannelChannelHeaderArgs']]]]:
        return pulumi.get(self, "headers")

    @headers.setter
    def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationChannelChannelHeaderArgs']]]]):
        pulumi.set(self, "headers", value)

    @_builtins.property
    @pulumi.getter(name="msTeamKeys")
    def ms_team_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "ms_team_keys")

    @ms_team_keys.setter
    def ms_team_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "ms_team_keys", value)

    @_builtins.property
    @pulumi.getter(name="pagerDutyIntegrationKeys")
    def pager_duty_integration_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "pager_duty_integration_keys")

    @pager_duty_integration_keys.setter
    def pager_duty_integration_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "pager_duty_integration_keys", value)

    @_builtins.property
    @pulumi.getter(name="slackWebhookUrls")
    def slack_webhook_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "slack_webhook_urls")

    @slack_webhook_urls.setter
    def slack_webhook_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "slack_webhook_urls", value)

    @_builtins.property
    @pulumi.getter(name="userGroups")
    def user_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationChannelChannelUserGroupArgs']]]]:
        return pulumi.get(self, "user_groups")

    @user_groups.setter
    def user_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationChannelChannelUserGroupArgs']]]]):
        pulumi.set(self, "user_groups", value)

    @_builtins.property
    @pulumi.getter(name="webhookUrls")
    def webhook_urls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "webhook_urls")

    @webhook_urls.setter
    def webhook_urls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "webhook_urls", value)


if not MYPY:
    class CentralNotificationChannelChannelHeaderArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        value: pulumi.Input[_builtins.str]
elif False:
    CentralNotificationChannelChannelHeaderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CentralNotificationChannelChannelHeaderArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str]):
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)


if not MYPY:
    class CentralNotificationChannelChannelUserGroupArgsDict(TypedDict):
        identifier: pulumi.Input[_builtins.str]
elif False:
    CentralNotificationChannelChannelUserGroupArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CentralNotificationChannelChannelUserGroupArgs:
    def __init__(__self__, *,
                 identifier: pulumi.Input[_builtins.str]):
        pulumi.set(__self__, "identifier", identifier)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "identifier", value)


if not MYPY:
    class CentralNotificationRuleCustomNotificationTemplateRefArgsDict(TypedDict):
        template_ref: pulumi.Input[_builtins.str]
        version_label: pulumi.Input[_builtins.str]
        variables: NotRequired[pulumi.Input[Sequence[pulumi.Input['CentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict']]]]
elif False:
    CentralNotificationRuleCustomNotificationTemplateRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CentralNotificationRuleCustomNotificationTemplateRefArgs:
    def __init__(__self__, *,
                 template_ref: pulumi.Input[_builtins.str],
                 version_label: pulumi.Input[_builtins.str],
                 variables: Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]]] = None):
        pulumi.set(__self__, "template_ref", template_ref)
        pulumi.set(__self__, "version_label", version_label)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @_builtins.property
    @pulumi.getter(name="templateRef")
    def template_ref(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "template_ref")

    @template_ref.setter
    def template_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "template_ref", value)

    @_builtins.property
    @pulumi.getter(name="versionLabel")
    def version_label(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "version_label")

    @version_label.setter
    def version_label(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "version_label", value)

    @_builtins.property
    @pulumi.getter
    def variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]]]:
        return pulumi.get(self, "variables")

    @variables.setter
    def variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]]]):
        pulumi.set(self, "variables", value)


if not MYPY:
    class CentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        value: pulumi.Input[_builtins.str]
        type: NotRequired[pulumi.Input[_builtins.str]]
elif False:
    CentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CentralNotificationRuleCustomNotificationTemplateRefVariableArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str],
                 type: Optional[pulumi.Input[_builtins.str]] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type", value)


if not MYPY:
    class CentralNotificationRuleNotificationConditionArgsDict(TypedDict):
        condition_name: pulumi.Input[_builtins.str]
        notification_event_configs: pulumi.Input[Sequence[pulumi.Input['CentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict']]]
elif False:
    CentralNotificationRuleNotificationConditionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CentralNotificationRuleNotificationConditionArgs:
    def __init__(__self__, *,
                 condition_name: pulumi.Input[_builtins.str],
                 notification_event_configs: pulumi.Input[Sequence[pulumi.Input['CentralNotificationRuleNotificationConditionNotificationEventConfigArgs']]]):
        pulumi.set(__self__, "condition_name", condition_name)
        pulumi.set(__self__, "notification_event_configs", notification_event_configs)

    @_builtins.property
    @pulumi.getter(name="conditionName")
    def condition_name(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "condition_name")

    @condition_name.setter
    def condition_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "condition_name", value)

    @_builtins.property
    @pulumi.getter(name="notificationEventConfigs")
    def notification_event_configs(self) -> pulumi.Input[Sequence[pulumi.Input['CentralNotificationRuleNotificationConditionNotificationEventConfigArgs']]]:
        return pulumi.get(self, "notification_event_configs")

    @notification_event_configs.setter
    def notification_event_configs(self, value: pulumi.Input[Sequence[pulumi.Input['CentralNotificationRuleNotificationConditionNotificationEventConfigArgs']]]):
        pulumi.set(self, "notification_event_configs", value)


if not MYPY:
    class CentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict(TypedDict):
        notification_entity: pulumi.Input[_builtins.str]
        notification_event: pulumi.Input[_builtins.str]
        entity_identifiers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        notification_event_data: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
elif False:
    CentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class CentralNotificationRuleNotificationConditionNotificationEventConfigArgs:
    def __init__(__self__, *,
                 notification_entity: pulumi.Input[_builtins.str],
                 notification_event: pulumi.Input[_builtins.str],
                 entity_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 notification_event_data: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        pulumi.set(__self__, "notification_entity", notification_entity)
        pulumi.set(__self__, "notification_event", notification_event)
        if entity_identifiers is not None:
            pulumi.set(__self__, "entity_identifiers", entity_identifiers)
        if notification_event_data is not None:
            pulumi.set(__self__, "notification_event_data", notification_event_data)

    @_builtins.property
    @pulumi.getter(name="notificationEntity")
    def notification_entity(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "notification_entity")

    @notification_entity.setter
    def notification_entity(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "notification_entity", value)

    @_builtins.property
    @pulumi.getter(name="notificationEvent")
    def notification_event(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "notification_event")

    @notification_event.setter
    def notification_event(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "notification_event", value)

    @_builtins.property
    @pulumi.getter(name="entityIdentifiers")
    def entity_identifiers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "entity_identifiers")

    @entity_identifiers.setter
    def entity_identifiers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "entity_identifiers", value)

    @_builtins.property
    @pulumi.getter(name="notificationEventData")
    def notification_event_data(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "notification_event_data")

    @notification_event_data.setter
    def notification_event_data(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "notification_event_data", value)


if not MYPY:
    class ConnectorAzureArtifactsCredentialsArgsDict(TypedDict):
        token_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the token 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}.
        """
elif False:
    ConnectorAzureArtifactsCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorAzureArtifactsCredentialsArgs:
    def __init__(__self__, *,
                 token_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] token_ref: Reference to a secret containing the token 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}.
        """
        pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the token 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class ConnectorAzureRepoApiAuthenticationArgsDict(TypedDict):
        token_ref: pulumi.Input[_builtins.str]
        """
        Personal access token for interacting with the azure 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}.
        """
elif False:
    ConnectorAzureRepoApiAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorAzureRepoApiAuthenticationArgs:
    def __init__(__self__, *,
                 token_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] token_ref: Personal access token for interacting with the azure 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}.
        """
        pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Personal access token for interacting with the azure 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class ConnectorAzureRepoCredentialsArgsDict(TypedDict):
        http: NotRequired[pulumi.Input['ConnectorAzureRepoCredentialsHttpArgsDict']]
        """
        Authenticate using Username and token over http(s) for the connection.
        """
        ssh: NotRequired[pulumi.Input['ConnectorAzureRepoCredentialsSshArgsDict']]
        """
        Authenticate using SSH for the connection.
        """
elif False:
    ConnectorAzureRepoCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorAzureRepoCredentialsArgs:
    def __init__(__self__, *,
                 http: Optional[pulumi.Input['ConnectorAzureRepoCredentialsHttpArgs']] = None,
                 ssh: Optional[pulumi.Input['ConnectorAzureRepoCredentialsSshArgs']] = None):
        """
        :param pulumi.Input['ConnectorAzureRepoCredentialsHttpArgs'] http: Authenticate using Username and token over http(s) for the connection.
        :param pulumi.Input['ConnectorAzureRepoCredentialsSshArgs'] ssh: Authenticate using SSH for the connection.
        """
        if http is not None:
            pulumi.set(__self__, "http", http)
        if ssh is not None:
            pulumi.set(__self__, "ssh", ssh)

    @_builtins.property
    @pulumi.getter
    def http(self) -> Optional[pulumi.Input['ConnectorAzureRepoCredentialsHttpArgs']]:
        """
        Authenticate using Username and token over http(s) for the connection.
        """
        return pulumi.get(self, "http")

    @http.setter
    def http(self, value: Optional[pulumi.Input['ConnectorAzureRepoCredentialsHttpArgs']]):
        pulumi.set(self, "http", value)

    @_builtins.property
    @pulumi.getter
    def ssh(self) -> Optional[pulumi.Input['ConnectorAzureRepoCredentialsSshArgs']]:
        """
        Authenticate using SSH for the connection.
        """
        return pulumi.get(self, "ssh")

    @ssh.setter
    def ssh(self, value: Optional[pulumi.Input['ConnectorAzureRepoCredentialsSshArgs']]):
        pulumi.set(self, "ssh", value)


if not MYPY:
    class ConnectorAzureRepoCredentialsHttpArgsDict(TypedDict):
        token_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the personal access 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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    ConnectorAzureRepoCredentialsHttpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorAzureRepoCredentialsHttpArgs:
    def __init__(__self__, *,
                 token_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] token_ref: Reference to a secret containing the personal access 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "token_ref", token_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the personal access 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "token_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class ConnectorAzureRepoCredentialsSshArgsDict(TypedDict):
        ssh_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to the Harness secret containing the ssh 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}.
        """
elif False:
    ConnectorAzureRepoCredentialsSshArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorAzureRepoCredentialsSshArgs:
    def __init__(__self__, *,
                 ssh_key_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] ssh_key_ref: Reference to the Harness secret containing the ssh 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}.
        """
        pulumi.set(__self__, "ssh_key_ref", ssh_key_ref)

    @_builtins.property
    @pulumi.getter(name="sshKeyRef")
    def ssh_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the Harness secret containing the ssh 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}.
        """
        return pulumi.get(self, "ssh_key_ref")

    @ssh_key_ref.setter
    def ssh_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "ssh_key_ref", value)


if not MYPY:
    class ConnectorCustomSecretManagerTemplateInputArgsDict(TypedDict):
        environment_variables: NotRequired[pulumi.Input[Sequence[pulumi.Input['ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgsDict']]]]
elif False:
    ConnectorCustomSecretManagerTemplateInputArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorCustomSecretManagerTemplateInputArgs:
    def __init__(__self__, *,
                 environment_variables: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgs']]]] = None):
        if environment_variables is not None:
            pulumi.set(__self__, "environment_variables", environment_variables)

    @_builtins.property
    @pulumi.getter(name="environmentVariables")
    def environment_variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgs']]]]:
        return pulumi.get(self, "environment_variables")

    @environment_variables.setter
    def environment_variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgs']]]]):
        pulumi.set(self, "environment_variables", value)


if not MYPY:
    class ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        type: pulumi.Input[_builtins.str]
        value: pulumi.Input[_builtins.str]
        default: NotRequired[pulumi.Input[_builtins.bool]]
elif False:
    ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorCustomSecretManagerTemplateInputEnvironmentVariableArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str],
                 default: Optional[pulumi.Input[_builtins.bool]] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "value", value)
        if default is not None:
            pulumi.set(__self__, "default", default)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter
    def default(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "default")

    @default.setter
    def default(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "default", value)


if not MYPY:
    class ConnectorCustomhealthsourceHeaderArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key.
        """
        encrypted_value_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the Harness secret containing the encrypted value. 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}.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value.
        """
        value_encrypted: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Encrypted value.
        """
elif False:
    ConnectorCustomhealthsourceHeaderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorCustomhealthsourceHeaderArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 encrypted_value_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None,
                 value_encrypted: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] key: Key.
        :param pulumi.Input[_builtins.str] encrypted_value_ref: Reference to the Harness secret containing the encrypted value. 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}.
        :param pulumi.Input[_builtins.str] value: Value.
        :param pulumi.Input[_builtins.bool] value_encrypted: Encrypted value.
        """
        pulumi.set(__self__, "key", key)
        if encrypted_value_ref is not None:
            pulumi.set(__self__, "encrypted_value_ref", encrypted_value_ref)
        if value is not None:
            pulumi.set(__self__, "value", value)
        if value_encrypted is not None:
            pulumi.set(__self__, "value_encrypted", value_encrypted)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="encryptedValueRef")
    def encrypted_value_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the Harness secret containing the encrypted value. 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}.
        """
        return pulumi.get(self, "encrypted_value_ref")

    @encrypted_value_ref.setter
    def encrypted_value_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "encrypted_value_ref", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueEncrypted")
    def value_encrypted(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Encrypted value.
        """
        return pulumi.get(self, "value_encrypted")

    @value_encrypted.setter
    def value_encrypted(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "value_encrypted", value)


if not MYPY:
    class ConnectorCustomhealthsourceParamArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key.
        """
        encrypted_value_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the Harness secret containing the encrypted value. 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}.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value.
        """
        value_encrypted: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Encrypted value.
        """
elif False:
    ConnectorCustomhealthsourceParamArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorCustomhealthsourceParamArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 encrypted_value_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None,
                 value_encrypted: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] key: Key.
        :param pulumi.Input[_builtins.str] encrypted_value_ref: Reference to the Harness secret containing the encrypted value. 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}.
        :param pulumi.Input[_builtins.str] value: Value.
        :param pulumi.Input[_builtins.bool] value_encrypted: Encrypted value.
        """
        pulumi.set(__self__, "key", key)
        if encrypted_value_ref is not None:
            pulumi.set(__self__, "encrypted_value_ref", encrypted_value_ref)
        if value is not None:
            pulumi.set(__self__, "value", value)
        if value_encrypted is not None:
            pulumi.set(__self__, "value_encrypted", value_encrypted)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="encryptedValueRef")
    def encrypted_value_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the Harness secret containing the encrypted value. 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}.
        """
        return pulumi.get(self, "encrypted_value_ref")

    @encrypted_value_ref.setter
    def encrypted_value_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "encrypted_value_ref", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueEncrypted")
    def value_encrypted(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Encrypted value.
        """
        return pulumi.get(self, "value_encrypted")

    @value_encrypted.setter
    def value_encrypted(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "value_encrypted", value)


if not MYPY:
    class ConnectorGcpKmsManualArgsDict(TypedDict):
        credentials: pulumi.Input[_builtins.str]
        """
        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}.
        """
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        The delegates to connect with.
        """
elif False:
    ConnectorGcpKmsManualArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorGcpKmsManualArgs:
    def __init__(__self__, *,
                 credentials: pulumi.Input[_builtins.str],
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] credentials: 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}.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: The delegates to connect with.
        """
        pulumi.set(__self__, "credentials", credentials)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)

    @_builtins.property
    @pulumi.getter
    def credentials(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "credentials")

    @credentials.setter
    def credentials(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "credentials", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        The delegates to connect with.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)


if not MYPY:
    class ConnectorGcpKmsOidcAuthenticationArgsDict(TypedDict):
        gcp_project_id: pulumi.Input[_builtins.str]
        """
        The project number of the GCP project that is used to create the workload identity.
        """
        provider_id: pulumi.Input[_builtins.str]
        """
        The OIDC provider ID value configured in GCP.
        """
        service_account_email: pulumi.Input[_builtins.str]
        """
        The service account linked to workload identity pool while setting GCP workload identity provider.
        """
        workload_pool_id: pulumi.Input[_builtins.str]
        """
        The workload pool ID value created in GCP.
        """
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        The delegates to inherit the credentials from.
        """
elif False:
    ConnectorGcpKmsOidcAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorGcpKmsOidcAuthenticationArgs:
    def __init__(__self__, *,
                 gcp_project_id: pulumi.Input[_builtins.str],
                 provider_id: pulumi.Input[_builtins.str],
                 service_account_email: pulumi.Input[_builtins.str],
                 workload_pool_id: pulumi.Input[_builtins.str],
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] gcp_project_id: The project number of the GCP project that is used to create the workload identity.
        :param pulumi.Input[_builtins.str] provider_id: The OIDC provider ID value configured in GCP.
        :param pulumi.Input[_builtins.str] service_account_email: The service account linked to workload identity pool while setting GCP workload identity provider.
        :param pulumi.Input[_builtins.str] workload_pool_id: The workload pool ID value created in GCP.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: The delegates to inherit the credentials from.
        """
        pulumi.set(__self__, "gcp_project_id", gcp_project_id)
        pulumi.set(__self__, "provider_id", provider_id)
        pulumi.set(__self__, "service_account_email", service_account_email)
        pulumi.set(__self__, "workload_pool_id", workload_pool_id)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)

    @_builtins.property
    @pulumi.getter(name="gcpProjectId")
    def gcp_project_id(self) -> pulumi.Input[_builtins.str]:
        """
        The project number of the GCP project that is used to create the workload identity.
        """
        return pulumi.get(self, "gcp_project_id")

    @gcp_project_id.setter
    def gcp_project_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "gcp_project_id", value)

    @_builtins.property
    @pulumi.getter(name="providerId")
    def provider_id(self) -> pulumi.Input[_builtins.str]:
        """
        The OIDC provider ID value configured in GCP.
        """
        return pulumi.get(self, "provider_id")

    @provider_id.setter
    def provider_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "provider_id", value)

    @_builtins.property
    @pulumi.getter(name="serviceAccountEmail")
    def service_account_email(self) -> pulumi.Input[_builtins.str]:
        """
        The service account linked to workload identity pool while setting GCP workload identity provider.
        """
        return pulumi.get(self, "service_account_email")

    @service_account_email.setter
    def service_account_email(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "service_account_email", value)

    @_builtins.property
    @pulumi.getter(name="workloadPoolId")
    def workload_pool_id(self) -> pulumi.Input[_builtins.str]:
        """
        The workload pool ID value created in GCP.
        """
        return pulumi.get(self, "workload_pool_id")

    @workload_pool_id.setter
    def workload_pool_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "workload_pool_id", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        The delegates to inherit the credentials from.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)


if not MYPY:
    class ConnectorJdbcCredentialsArgsDict(TypedDict):
        auth_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Authentication types for JDBC connector
        """
        password_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        The reference to the Harness secret containing the password to use for the database server. 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}.
        """
        service_account: NotRequired[pulumi.Input['ConnectorJdbcCredentialsServiceAccountArgsDict']]
        """
        Authenticate using service account.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        The username to use for the database server.
        """
        username_password: NotRequired[pulumi.Input['ConnectorJdbcCredentialsUsernamePasswordArgsDict']]
        """
        Authenticate using username password.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        The reference to the Harness secret containing the username to use for the database server. 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}.
        """
elif False:
    ConnectorJdbcCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorJdbcCredentialsArgs:
    def __init__(__self__, *,
                 auth_type: Optional[pulumi.Input[_builtins.str]] = None,
                 password_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 service_account: Optional[pulumi.Input['ConnectorJdbcCredentialsServiceAccountArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_password: Optional[pulumi.Input['ConnectorJdbcCredentialsUsernamePasswordArgs']] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] auth_type: Authentication types for JDBC connector
        :param pulumi.Input[_builtins.str] password_ref: The reference to the Harness secret containing the password to use for the database server. 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}.
        :param pulumi.Input['ConnectorJdbcCredentialsServiceAccountArgs'] service_account: Authenticate using service account.
        :param pulumi.Input[_builtins.str] username: The username to use for the database server.
        :param pulumi.Input['ConnectorJdbcCredentialsUsernamePasswordArgs'] username_password: Authenticate using username password.
        :param pulumi.Input[_builtins.str] username_ref: The reference to the Harness secret containing the username to use for the database server. 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}.
        """
        if auth_type is not None:
            pulumi.set(__self__, "auth_type", auth_type)
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if service_account is not None:
            pulumi.set(__self__, "service_account", service_account)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_password is not None:
            pulumi.set(__self__, "username_password", username_password)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="authType")
    def auth_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Authentication types for JDBC connector
        """
        return pulumi.get(self, "auth_type")

    @auth_type.setter
    def auth_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "auth_type", value)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The reference to the Harness secret containing the password to use for the database server. 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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter(name="serviceAccount")
    def service_account(self) -> Optional[pulumi.Input['ConnectorJdbcCredentialsServiceAccountArgs']]:
        """
        Authenticate using service account.
        """
        return pulumi.get(self, "service_account")

    @service_account.setter
    def service_account(self, value: Optional[pulumi.Input['ConnectorJdbcCredentialsServiceAccountArgs']]):
        pulumi.set(self, "service_account", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The username to use for the database server.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernamePassword")
    def username_password(self) -> Optional[pulumi.Input['ConnectorJdbcCredentialsUsernamePasswordArgs']]:
        """
        Authenticate using username password.
        """
        return pulumi.get(self, "username_password")

    @username_password.setter
    def username_password(self, value: Optional[pulumi.Input['ConnectorJdbcCredentialsUsernamePasswordArgs']]):
        pulumi.set(self, "username_password", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The reference to the Harness secret containing the username to use for the database server. 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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class ConnectorJdbcCredentialsServiceAccountArgsDict(TypedDict):
        token_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the token 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}.
        """
elif False:
    ConnectorJdbcCredentialsServiceAccountArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorJdbcCredentialsServiceAccountArgs:
    def __init__(__self__, *,
                 token_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] token_ref: Reference to a secret containing the token 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}.
        """
        pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the token 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class ConnectorJdbcCredentialsUsernamePasswordArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    ConnectorJdbcCredentialsUsernamePasswordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorJdbcCredentialsUsernamePasswordArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class ConnectorPdcHostArgsDict(TypedDict):
        hostname: pulumi.Input[_builtins.str]
        """
        hostname
        """
        attributes: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        attributes for current host
        """
elif False:
    ConnectorPdcHostArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorPdcHostArgs:
    def __init__(__self__, *,
                 hostname: pulumi.Input[_builtins.str],
                 attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] hostname: hostname
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] attributes: attributes for current host
        """
        pulumi.set(__self__, "hostname", hostname)
        if attributes is not None:
            pulumi.set(__self__, "attributes", attributes)

    @_builtins.property
    @pulumi.getter
    def hostname(self) -> pulumi.Input[_builtins.str]:
        """
        hostname
        """
        return pulumi.get(self, "hostname")

    @hostname.setter
    def hostname(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "hostname", value)

    @_builtins.property
    @pulumi.getter
    def attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        attributes for current host
        """
        return pulumi.get(self, "attributes")

    @attributes.setter
    def attributes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "attributes", value)


if not MYPY:
    class ConnectorRancherBearerTokenArgsDict(TypedDict):
        bearer_token_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the bearer token for the rancher cluster. 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}.
        """
elif False:
    ConnectorRancherBearerTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ConnectorRancherBearerTokenArgs:
    def __init__(__self__, *,
                 bearer_token_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] bearer_token_ref: Reference to the secret containing the bearer token for the rancher cluster. 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}.
        """
        pulumi.set(__self__, "bearer_token_ref", bearer_token_ref)

    @_builtins.property
    @pulumi.getter(name="bearerTokenRef")
    def bearer_token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the bearer token for the rancher cluster. 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}.
        """
        return pulumi.get(self, "bearer_token_ref")

    @bearer_token_ref.setter
    def bearer_token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "bearer_token_ref", value)


if not MYPY:
    class DbSchemaChangelogScriptArgsDict(TypedDict):
        command: NotRequired[pulumi.Input[_builtins.str]]
        """
        Script to clone changeSets
        """
        image: NotRequired[pulumi.Input[_builtins.str]]
        """
        The fully-qualified name (FQN) of the image
        """
        location: NotRequired[pulumi.Input[_builtins.str]]
        """
        Path to changeLog file
        """
        shell: NotRequired[pulumi.Input[_builtins.str]]
        """
        Type of the shell. For example Sh or Bash
        """
        toml: NotRequired[pulumi.Input[_builtins.str]]
        """
        Config file, to define various settings and properties for managing database schema change
        """
elif False:
    DbSchemaChangelogScriptArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbSchemaChangelogScriptArgs:
    def __init__(__self__, *,
                 command: Optional[pulumi.Input[_builtins.str]] = None,
                 image: Optional[pulumi.Input[_builtins.str]] = None,
                 location: Optional[pulumi.Input[_builtins.str]] = None,
                 shell: Optional[pulumi.Input[_builtins.str]] = None,
                 toml: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] command: Script to clone changeSets
        :param pulumi.Input[_builtins.str] image: The fully-qualified name (FQN) of the image
        :param pulumi.Input[_builtins.str] location: Path to changeLog file
        :param pulumi.Input[_builtins.str] shell: Type of the shell. For example Sh or Bash
        :param pulumi.Input[_builtins.str] toml: Config file, to define various settings and properties for managing database schema change
        """
        if command is not None:
            pulumi.set(__self__, "command", command)
        if image is not None:
            pulumi.set(__self__, "image", image)
        if location is not None:
            pulumi.set(__self__, "location", location)
        if shell is not None:
            pulumi.set(__self__, "shell", shell)
        if toml is not None:
            pulumi.set(__self__, "toml", toml)

    @_builtins.property
    @pulumi.getter
    def command(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Script to clone changeSets
        """
        return pulumi.get(self, "command")

    @command.setter
    def command(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "command", value)

    @_builtins.property
    @pulumi.getter
    def image(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The fully-qualified name (FQN) of the image
        """
        return pulumi.get(self, "image")

    @image.setter
    def image(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "image", value)

    @_builtins.property
    @pulumi.getter
    def location(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Path to changeLog file
        """
        return pulumi.get(self, "location")

    @location.setter
    def location(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "location", value)

    @_builtins.property
    @pulumi.getter
    def shell(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Type of the shell. For example Sh or Bash
        """
        return pulumi.get(self, "shell")

    @shell.setter
    def shell(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "shell", value)

    @_builtins.property
    @pulumi.getter
    def toml(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Config file, to define various settings and properties for managing database schema change
        """
        return pulumi.get(self, "toml")

    @toml.setter
    def toml(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "toml", value)


if not MYPY:
    class DbSchemaSchemaSourceArgsDict(TypedDict):
        connector: pulumi.Input[_builtins.str]
        """
        Connector to repository at which to find details about the database schema
        """
        location: pulumi.Input[_builtins.str]
        """
        The path within the specified repository at which to find details about the database schema
        """
        archive_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        If connector type is artifactory, path to the archive file which contains the changeLog
        """
        repo: NotRequired[pulumi.Input[_builtins.str]]
        """
        If connector url is of account, which repository to connect to using the connector
        """
        toml: NotRequired[pulumi.Input[_builtins.str]]
        """
        Config file, to define various settings and properties for managing database schema change
        """
elif False:
    DbSchemaSchemaSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbSchemaSchemaSourceArgs:
    def __init__(__self__, *,
                 connector: pulumi.Input[_builtins.str],
                 location: pulumi.Input[_builtins.str],
                 archive_path: Optional[pulumi.Input[_builtins.str]] = None,
                 repo: Optional[pulumi.Input[_builtins.str]] = None,
                 toml: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] connector: Connector to repository at which to find details about the database schema
        :param pulumi.Input[_builtins.str] location: The path within the specified repository at which to find details about the database schema
        :param pulumi.Input[_builtins.str] archive_path: If connector type is artifactory, path to the archive file which contains the changeLog
        :param pulumi.Input[_builtins.str] repo: If connector url is of account, which repository to connect to using the connector
        :param pulumi.Input[_builtins.str] toml: Config file, to define various settings and properties for managing database schema change
        """
        pulumi.set(__self__, "connector", connector)
        pulumi.set(__self__, "location", location)
        if archive_path is not None:
            pulumi.set(__self__, "archive_path", archive_path)
        if repo is not None:
            pulumi.set(__self__, "repo", repo)
        if toml is not None:
            pulumi.set(__self__, "toml", toml)

    @_builtins.property
    @pulumi.getter
    def connector(self) -> pulumi.Input[_builtins.str]:
        """
        Connector to repository at which to find details about the database schema
        """
        return pulumi.get(self, "connector")

    @connector.setter
    def connector(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "connector", value)

    @_builtins.property
    @pulumi.getter
    def location(self) -> pulumi.Input[_builtins.str]:
        """
        The path within the specified repository at which to find details about the database schema
        """
        return pulumi.get(self, "location")

    @location.setter
    def location(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "location", value)

    @_builtins.property
    @pulumi.getter(name="archivePath")
    def archive_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        If connector type is artifactory, path to the archive file which contains the changeLog
        """
        return pulumi.get(self, "archive_path")

    @archive_path.setter
    def archive_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "archive_path", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        If connector url is of account, which repository to connect to using the connector
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def toml(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Config file, to define various settings and properties for managing database schema change
        """
        return pulumi.get(self, "toml")

    @toml.setter
    def toml(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "toml", value)


if not MYPY:
    class DefaultNotificationTemplateSetEventTemplateConfigurationSetArgsDict(TypedDict):
        notification_events: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        List of notification events like PIPELINE_START
        """
        template: pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgsDict']
        """
        Template reference configuration
        """
elif False:
    DefaultNotificationTemplateSetEventTemplateConfigurationSetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DefaultNotificationTemplateSetEventTemplateConfigurationSetArgs:
    def __init__(__self__, *,
                 notification_events: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
                 template: pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs']):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] notification_events: List of notification events like PIPELINE_START
        :param pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs'] template: Template reference configuration
        """
        pulumi.set(__self__, "notification_events", notification_events)
        pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="notificationEvents")
    def notification_events(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        List of notification events like PIPELINE_START
        """
        return pulumi.get(self, "notification_events")

    @notification_events.setter
    def notification_events(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "notification_events", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs']:
        """
        Template reference configuration
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs']):
        pulumi.set(self, "template", value)


if not MYPY:
    class DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgsDict(TypedDict):
        template_ref: pulumi.Input[_builtins.str]
        version_label: pulumi.Input[_builtins.str]
        variables: NotRequired[pulumi.Input[Sequence[pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgsDict']]]]
        """
        List of variables passed to the template
        """
elif False:
    DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs:
    def __init__(__self__, *,
                 template_ref: pulumi.Input[_builtins.str],
                 version_label: pulumi.Input[_builtins.str],
                 variables: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs']]] variables: List of variables passed to the template
        """
        pulumi.set(__self__, "template_ref", template_ref)
        pulumi.set(__self__, "version_label", version_label)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @_builtins.property
    @pulumi.getter(name="templateRef")
    def template_ref(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "template_ref")

    @template_ref.setter
    def template_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "template_ref", value)

    @_builtins.property
    @pulumi.getter(name="versionLabel")
    def version_label(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "version_label")

    @version_label.setter
    def version_label(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "version_label", value)

    @_builtins.property
    @pulumi.getter
    def variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs']]]]:
        """
        List of variables passed to the template
        """
        return pulumi.get(self, "variables")

    @variables.setter
    def variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs']]]]):
        pulumi.set(self, "variables", value)


if not MYPY:
    class DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        type: pulumi.Input[_builtins.str]
        value: pulumi.Input[_builtins.str]
elif False:
    DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str]):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)


if not MYPY:
    class DockerConnectorCredentialsArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        The username to use for the docker registry.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    DockerConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DockerConnectorCredentialsArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: The username to use for the docker registry.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The username to use for the docker registry.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class ElasticsearchConnectorApiTokenArgsDict(TypedDict):
        client_id: pulumi.Input[_builtins.str]
        """
        The API Key id used for connecting to ElasticSearch.
        """
        client_secret_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
elif False:
    ElasticsearchConnectorApiTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ElasticsearchConnectorApiTokenArgs:
    def __init__(__self__, *,
                 client_id: pulumi.Input[_builtins.str],
                 client_secret_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] client_id: The API Key id used for connecting to ElasticSearch.
        :param pulumi.Input[_builtins.str] client_secret_ref: 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}.
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "client_secret_ref", client_secret_ref)

    @_builtins.property
    @pulumi.getter(name="clientId")
    def client_id(self) -> pulumi.Input[_builtins.str]:
        """
        The API Key id used for connecting to ElasticSearch.
        """
        return pulumi.get(self, "client_id")

    @client_id.setter
    def client_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_id", value)

    @_builtins.property
    @pulumi.getter(name="clientSecretRef")
    def client_secret_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "client_secret_ref")

    @client_secret_ref.setter
    def client_secret_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_secret_ref", value)


if not MYPY:
    class ElasticsearchConnectorNoAuthenticationArgsDict(TypedDict):
        pass
elif False:
    ElasticsearchConnectorNoAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ElasticsearchConnectorNoAuthenticationArgs:
    def __init__(__self__):
        pass


if not MYPY:
    class ElasticsearchConnectorUsernamePasswordArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: pulumi.Input[_builtins.str]
        """
        Username to use for authentication.
        """
elif False:
    ElasticsearchConnectorUsernamePasswordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ElasticsearchConnectorUsernamePasswordArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> pulumi.Input[_builtins.str]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "username", value)


if not MYPY:
    class EnvironmentClustersMappingClusterArgsDict(TypedDict):
        agent_identifier: NotRequired[pulumi.Input[_builtins.str]]
        """
        agent identifier of the cluster (include scope prefix)
        """
        identifier: NotRequired[pulumi.Input[_builtins.str]]
        """
        identifier of the cluster
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        name of the cluster
        """
        scope: NotRequired[pulumi.Input[_builtins.str]]
        """
        scope at which the cluster exists in harness gitops, one of "ACCOUNT", "ORGANIZATION", "PROJECT". Scope of environment to which clusters are being mapped must be lower or equal to in hierarchy than the scope of the cluster
        """
elif False:
    EnvironmentClustersMappingClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EnvironmentClustersMappingClusterArgs:
    def __init__(__self__, *,
                 agent_identifier: Optional[pulumi.Input[_builtins.str]] = None,
                 identifier: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 scope: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] agent_identifier: agent identifier of the cluster (include scope prefix)
        :param pulumi.Input[_builtins.str] identifier: identifier of the cluster
        :param pulumi.Input[_builtins.str] name: name of the cluster
        :param pulumi.Input[_builtins.str] scope: scope at which the cluster exists in harness gitops, one of "ACCOUNT", "ORGANIZATION", "PROJECT". Scope of environment to which clusters are being mapped must be lower or equal to in hierarchy than the scope of the cluster
        """
        if agent_identifier is not None:
            pulumi.set(__self__, "agent_identifier", agent_identifier)
        if identifier is not None:
            pulumi.set(__self__, "identifier", identifier)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if scope is not None:
            pulumi.set(__self__, "scope", scope)

    @_builtins.property
    @pulumi.getter(name="agentIdentifier")
    def agent_identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        agent identifier of the cluster (include scope prefix)
        """
        return pulumi.get(self, "agent_identifier")

    @agent_identifier.setter
    def agent_identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "agent_identifier", value)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        identifier of the cluster
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        name of the cluster
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def scope(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        scope at which the cluster exists in harness gitops, one of "ACCOUNT", "ORGANIZATION", "PROJECT". Scope of environment to which clusters are being mapped must be lower or equal to in hierarchy than the scope of the cluster
        """
        return pulumi.get(self, "scope")

    @scope.setter
    def scope(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "scope", value)


if not MYPY:
    class EnvironmentGitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        import_from_git: NotRequired[pulumi.Input[_builtins.bool]]
        """
        import environment from git
        """
        is_force_import: NotRequired[pulumi.Input[_builtins.bool]]
        """
        force import environment from remote even if same file path already exist
        """
        is_harnesscode_repo: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the gitProvider is HarnessCode
        """
        is_new_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If a new branch creation is requested.
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        load_from_cache: NotRequired[pulumi.Input[_builtins.str]]
        """
        If the Entity is to be fetched from cache
        """
        load_from_fallback_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the Entity is to be fetched from fallbackBranch
        """
        parent_entity_connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Parent Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        parent_entity_repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository where parent entity lies.
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    EnvironmentGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EnvironmentGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 import_from_git: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_force_import: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_harnesscode_repo: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_new_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 load_from_cache: Optional[pulumi.Input[_builtins.str]] = None,
                 load_from_fallback_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 parent_entity_connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 parent_entity_repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.bool] import_from_git: import environment from git
        :param pulumi.Input[_builtins.bool] is_force_import: force import environment from remote even if same file path already exist
        :param pulumi.Input[_builtins.bool] is_harnesscode_repo: If the gitProvider is HarnessCode
        :param pulumi.Input[_builtins.bool] is_new_branch: If a new branch creation is requested.
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] load_from_cache: If the Entity is to be fetched from cache
        :param pulumi.Input[_builtins.bool] load_from_fallback_branch: If the Entity is to be fetched from fallbackBranch
        :param pulumi.Input[_builtins.str] parent_entity_connector_ref: Identifier of the Harness Connector used for CRUD operations on the Parent Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] parent_entity_repo_name: Name of the repository where parent entity lies.
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch is not None:
            pulumi.set(__self__, "branch", branch)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if import_from_git is not None:
            pulumi.set(__self__, "import_from_git", import_from_git)
        if is_force_import is not None:
            pulumi.set(__self__, "is_force_import", is_force_import)
        if is_harnesscode_repo is not None:
            pulumi.set(__self__, "is_harnesscode_repo", is_harnesscode_repo)
        if is_new_branch is not None:
            pulumi.set(__self__, "is_new_branch", is_new_branch)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if load_from_cache is not None:
            pulumi.set(__self__, "load_from_cache", load_from_cache)
        if load_from_fallback_branch is not None:
            pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        if parent_entity_connector_ref is not None:
            pulumi.set(__self__, "parent_entity_connector_ref", parent_entity_connector_ref)
        if parent_entity_repo_name is not None:
            pulumi.set(__self__, "parent_entity_repo_name", parent_entity_repo_name)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="importFromGit")
    def import_from_git(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        import environment from git
        """
        return pulumi.get(self, "import_from_git")

    @import_from_git.setter
    def import_from_git(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "import_from_git", value)

    @_builtins.property
    @pulumi.getter(name="isForceImport")
    def is_force_import(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        force import environment from remote even if same file path already exist
        """
        return pulumi.get(self, "is_force_import")

    @is_force_import.setter
    def is_force_import(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_force_import", value)

    @_builtins.property
    @pulumi.getter(name="isHarnesscodeRepo")
    def is_harnesscode_repo(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the gitProvider is HarnessCode
        """
        return pulumi.get(self, "is_harnesscode_repo")

    @is_harnesscode_repo.setter
    def is_harnesscode_repo(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_harnesscode_repo", value)

    @_builtins.property
    @pulumi.getter(name="isNewBranch")
    def is_new_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If a new branch creation is requested.
        """
        return pulumi.get(self, "is_new_branch")

    @is_new_branch.setter
    def is_new_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_new_branch", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="loadFromCache")
    def load_from_cache(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        If the Entity is to be fetched from cache
        """
        return pulumi.get(self, "load_from_cache")

    @load_from_cache.setter
    def load_from_cache(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "load_from_cache", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the Entity is to be fetched from fallbackBranch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="parentEntityConnectorRef")
    def parent_entity_connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Parent Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "parent_entity_connector_ref")

    @parent_entity_connector_ref.setter
    def parent_entity_connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "parent_entity_connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="parentEntityRepoName")
    def parent_entity_repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository where parent entity lies.
        """
        return pulumi.get(self, "parent_entity_repo_name")

    @parent_entity_repo_name.setter
    def parent_entity_repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "parent_entity_repo_name", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class FeatureFlagEnvironmentArgsDict(TypedDict):
        identifier: pulumi.Input[_builtins.str]
        """
        Identifier of the Environment
        """
        add_target_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['FeatureFlagEnvironmentAddTargetRuleArgsDict']]]]
        """
        The targeting rules for the flag
        """
        default_off_variation: NotRequired[pulumi.Input[_builtins.str]]
        """
        Default variation to be served when flag is 'off'
        """
        default_on_variation: NotRequired[pulumi.Input[_builtins.str]]
        """
        Default variation to be served when flag is 'on'
        """
        state: NotRequired[pulumi.Input[_builtins.str]]
        """
        State of the flag in this environment. Possible values are 'on' and 'off'
        """
elif False:
    FeatureFlagEnvironmentArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FeatureFlagEnvironmentArgs:
    def __init__(__self__, *,
                 identifier: pulumi.Input[_builtins.str],
                 add_target_rules: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureFlagEnvironmentAddTargetRuleArgs']]]] = None,
                 default_off_variation: Optional[pulumi.Input[_builtins.str]] = None,
                 default_on_variation: Optional[pulumi.Input[_builtins.str]] = None,
                 state: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] identifier: Identifier of the Environment
        :param pulumi.Input[Sequence[pulumi.Input['FeatureFlagEnvironmentAddTargetRuleArgs']]] add_target_rules: The targeting rules for the flag
        :param pulumi.Input[_builtins.str] default_off_variation: Default variation to be served when flag is 'off'
        :param pulumi.Input[_builtins.str] default_on_variation: Default variation to be served when flag is 'on'
        :param pulumi.Input[_builtins.str] state: State of the flag in this environment. Possible values are 'on' and 'off'
        """
        pulumi.set(__self__, "identifier", identifier)
        if add_target_rules is not None:
            pulumi.set(__self__, "add_target_rules", add_target_rules)
        if default_off_variation is not None:
            pulumi.set(__self__, "default_off_variation", default_off_variation)
        if default_on_variation is not None:
            pulumi.set(__self__, "default_on_variation", default_on_variation)
        if state is not None:
            pulumi.set(__self__, "state", state)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[_builtins.str]:
        """
        Identifier of the Environment
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter(name="addTargetRules")
    def add_target_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FeatureFlagEnvironmentAddTargetRuleArgs']]]]:
        """
        The targeting rules for the flag
        """
        return pulumi.get(self, "add_target_rules")

    @add_target_rules.setter
    def add_target_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FeatureFlagEnvironmentAddTargetRuleArgs']]]]):
        pulumi.set(self, "add_target_rules", value)

    @_builtins.property
    @pulumi.getter(name="defaultOffVariation")
    def default_off_variation(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Default variation to be served when flag is 'off'
        """
        return pulumi.get(self, "default_off_variation")

    @default_off_variation.setter
    def default_off_variation(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "default_off_variation", value)

    @_builtins.property
    @pulumi.getter(name="defaultOnVariation")
    def default_on_variation(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Default variation to be served when flag is 'on'
        """
        return pulumi.get(self, "default_on_variation")

    @default_on_variation.setter
    def default_on_variation(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "default_on_variation", value)

    @_builtins.property
    @pulumi.getter
    def state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        State of the flag in this environment. Possible values are 'on' and 'off'
        """
        return pulumi.get(self, "state")

    @state.setter
    def state(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "state", value)


if not MYPY:
    class FeatureFlagEnvironmentAddTargetRuleArgsDict(TypedDict):
        targets: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        The targets that should be served this variation
        """
        variation: NotRequired[pulumi.Input[_builtins.str]]
        """
        The identifier of the variation
        """
elif False:
    FeatureFlagEnvironmentAddTargetRuleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FeatureFlagEnvironmentAddTargetRuleArgs:
    def __init__(__self__, *,
                 targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 variation: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] targets: The targets that should be served this variation
        :param pulumi.Input[_builtins.str] variation: The identifier of the variation
        """
        if targets is not None:
            pulumi.set(__self__, "targets", targets)
        if variation is not None:
            pulumi.set(__self__, "variation", variation)

    @_builtins.property
    @pulumi.getter
    def targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        The targets that should be served this variation
        """
        return pulumi.get(self, "targets")

    @targets.setter
    def targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "targets", value)

    @_builtins.property
    @pulumi.getter
    def variation(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The identifier of the variation
        """
        return pulumi.get(self, "variation")

    @variation.setter
    def variation(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "variation", value)


if not MYPY:
    class FeatureFlagTagArgsDict(TypedDict):
        identifier: pulumi.Input[_builtins.str]
        """
        The identifier of the tag
        """
elif False:
    FeatureFlagTagArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FeatureFlagTagArgs:
    def __init__(__self__, *,
                 identifier: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] identifier: The identifier of the tag
        """
        pulumi.set(__self__, "identifier", identifier)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[_builtins.str]:
        """
        The identifier of the tag
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "identifier", value)


if not MYPY:
    class FeatureFlagTargetGroupRuleArgsDict(TypedDict):
        attribute: pulumi.Input[_builtins.str]
        """
        The attribute to use in the clause.  This can be any target attribute
        """
        op: pulumi.Input[_builtins.str]
        """
        The type of operation such as equals, starts_with, contains
        """
        values: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        The values that are compared against the operator
        """
        id: NotRequired[pulumi.Input[_builtins.str]]
        """
        The rule ID. Gets auto-generated by the system
        """
        negate: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Is the operation negated?
        """
elif False:
    FeatureFlagTargetGroupRuleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FeatureFlagTargetGroupRuleArgs:
    def __init__(__self__, *,
                 attribute: pulumi.Input[_builtins.str],
                 op: pulumi.Input[_builtins.str],
                 values: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
                 id: Optional[pulumi.Input[_builtins.str]] = None,
                 negate: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] attribute: The attribute to use in the clause.  This can be any target attribute
        :param pulumi.Input[_builtins.str] op: The type of operation such as equals, starts_with, contains
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: The values that are compared against the operator
        :param pulumi.Input[_builtins.str] id: The rule ID. Gets auto-generated by the system
        :param pulumi.Input[_builtins.bool] negate: Is the operation negated?
        """
        pulumi.set(__self__, "attribute", attribute)
        pulumi.set(__self__, "op", op)
        pulumi.set(__self__, "values", values)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if negate is not None:
            pulumi.set(__self__, "negate", negate)

    @_builtins.property
    @pulumi.getter
    def attribute(self) -> pulumi.Input[_builtins.str]:
        """
        The attribute to use in the clause.  This can be any target attribute
        """
        return pulumi.get(self, "attribute")

    @attribute.setter
    def attribute(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "attribute", value)

    @_builtins.property
    @pulumi.getter
    def op(self) -> pulumi.Input[_builtins.str]:
        """
        The type of operation such as equals, starts_with, contains
        """
        return pulumi.get(self, "op")

    @op.setter
    def op(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "op", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        The values that are compared against the operator
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The rule ID. Gets auto-generated by the system
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "id", value)

    @_builtins.property
    @pulumi.getter
    def negate(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Is the operation negated?
        """
        return pulumi.get(self, "negate")

    @negate.setter
    def negate(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "negate", value)


if not MYPY:
    class FeatureFlagVariationArgsDict(TypedDict):
        description: pulumi.Input[_builtins.str]
        """
        The description of the variation
        """
        identifier: pulumi.Input[_builtins.str]
        """
        The identifier of the variation
        """
        name: pulumi.Input[_builtins.str]
        """
        The user friendly name of the variation
        """
        value: pulumi.Input[_builtins.str]
        """
        The value of the variation
        """
elif False:
    FeatureFlagVariationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FeatureFlagVariationArgs:
    def __init__(__self__, *,
                 description: pulumi.Input[_builtins.str],
                 identifier: pulumi.Input[_builtins.str],
                 name: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] description: The description of the variation
        :param pulumi.Input[_builtins.str] identifier: The identifier of the variation
        :param pulumi.Input[_builtins.str] name: The user friendly name of the variation
        :param pulumi.Input[_builtins.str] value: The value of the variation
        """
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "identifier", identifier)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def description(self) -> pulumi.Input[_builtins.str]:
        """
        The description of the variation
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "description", value)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[_builtins.str]:
        """
        The identifier of the variation
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        The user friendly name of the variation
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        """
        The value of the variation
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)


if not MYPY:
    class FileStoreFileCreatedByArgsDict(TypedDict):
        email: NotRequired[pulumi.Input[_builtins.str]]
        """
        User email
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        User name
        """
elif False:
    FileStoreFileCreatedByArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FileStoreFileCreatedByArgs:
    def __init__(__self__, *,
                 email: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] email: User email
        :param pulumi.Input[_builtins.str] name: User name
        """
        if email is not None:
            pulumi.set(__self__, "email", email)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def email(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        User email
        """
        return pulumi.get(self, "email")

    @email.setter
    def email(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "email", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        User name
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class FileStoreFileLastModifiedByArgsDict(TypedDict):
        email: NotRequired[pulumi.Input[_builtins.str]]
        """
        User email
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        User name
        """
elif False:
    FileStoreFileLastModifiedByArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FileStoreFileLastModifiedByArgs:
    def __init__(__self__, *,
                 email: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] email: User email
        :param pulumi.Input[_builtins.str] name: User name
        """
        if email is not None:
            pulumi.set(__self__, "email", email)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def email(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        User email
        """
        return pulumi.get(self, "email")

    @email.setter
    def email(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "email", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        User name
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class FileStoreFolderCreatedByArgsDict(TypedDict):
        email: NotRequired[pulumi.Input[_builtins.str]]
        """
        User email
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        User name
        """
elif False:
    FileStoreFolderCreatedByArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FileStoreFolderCreatedByArgs:
    def __init__(__self__, *,
                 email: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] email: User email
        :param pulumi.Input[_builtins.str] name: User name
        """
        if email is not None:
            pulumi.set(__self__, "email", email)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def email(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        User email
        """
        return pulumi.get(self, "email")

    @email.setter
    def email(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "email", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        User name
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class FileStoreFolderLastModifiedByArgsDict(TypedDict):
        email: NotRequired[pulumi.Input[_builtins.str]]
        """
        User email
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        User name
        """
elif False:
    FileStoreFolderLastModifiedByArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FileStoreFolderLastModifiedByArgs:
    def __init__(__self__, *,
                 email: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] email: User email
        :param pulumi.Input[_builtins.str] name: User name
        """
        if email is not None:
            pulumi.set(__self__, "email", email)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def email(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        User email
        """
        return pulumi.get(self, "email")

    @email.setter
    def email(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "email", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        User name
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class FiltersFilterPropertiesArgsDict(TypedDict):
        filter_type: pulumi.Input[_builtins.str]
        """
        Corresponding Entity of the filter. Currently supported types are {Connector, DelegateProfile, Delegate, EnvironmentGroup, FileStore, Environment}.
        """
        tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Tags to associate with the resource. Tags should be in the form `name:value`.
        """
elif False:
    FiltersFilterPropertiesArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class FiltersFilterPropertiesArgs:
    def __init__(__self__, *,
                 filter_type: pulumi.Input[_builtins.str],
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] filter_type: Corresponding Entity of the filter. Currently supported types are {Connector, DelegateProfile, Delegate, EnvironmentGroup, FileStore, Environment}.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags to associate with the resource. Tags should be in the form `name:value`.
        """
        pulumi.set(__self__, "filter_type", filter_type)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

    @_builtins.property
    @pulumi.getter(name="filterType")
    def filter_type(self) -> pulumi.Input[_builtins.str]:
        """
        Corresponding Entity of the filter. Currently supported types are {Connector, DelegateProfile, Delegate, EnvironmentGroup, FileStore, Environment}.
        """
        return pulumi.get(self, "filter_type")

    @filter_type.setter
    def filter_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "filter_type", value)

    @_builtins.property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Tags to associate with the resource. Tags should be in the form `name:value`.
        """
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "tags", value)


if not MYPY:
    class GcpCloudCostConnectorBillingExportSpecArgsDict(TypedDict):
        data_set_id: pulumi.Input[_builtins.str]
        """
        Data Set Id.
        """
        table_id: pulumi.Input[_builtins.str]
        """
        Table Id.
        """
elif False:
    GcpCloudCostConnectorBillingExportSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GcpCloudCostConnectorBillingExportSpecArgs:
    def __init__(__self__, *,
                 data_set_id: pulumi.Input[_builtins.str],
                 table_id: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] data_set_id: Data Set Id.
        :param pulumi.Input[_builtins.str] table_id: Table Id.
        """
        pulumi.set(__self__, "data_set_id", data_set_id)
        pulumi.set(__self__, "table_id", table_id)

    @_builtins.property
    @pulumi.getter(name="dataSetId")
    def data_set_id(self) -> pulumi.Input[_builtins.str]:
        """
        Data Set Id.
        """
        return pulumi.get(self, "data_set_id")

    @data_set_id.setter
    def data_set_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "data_set_id", value)

    @_builtins.property
    @pulumi.getter(name="tableId")
    def table_id(self) -> pulumi.Input[_builtins.str]:
        """
        Table Id.
        """
        return pulumi.get(self, "table_id")

    @table_id.setter
    def table_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "table_id", value)


if not MYPY:
    class GcpConnectorInheritFromDelegateArgsDict(TypedDict):
        delegate_selectors: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        The delegates to inherit the credentials from.
        """
elif False:
    GcpConnectorInheritFromDelegateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GcpConnectorInheritFromDelegateArgs:
    def __init__(__self__, *,
                 delegate_selectors: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: The delegates to inherit the credentials from.
        """
        pulumi.set(__self__, "delegate_selectors", delegate_selectors)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        The delegates to inherit the credentials from.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "delegate_selectors", value)


if not MYPY:
    class GcpConnectorManualArgsDict(TypedDict):
        secret_key_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        The delegates to connect with.
        """
elif False:
    GcpConnectorManualArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GcpConnectorManualArgs:
    def __init__(__self__, *,
                 secret_key_ref: pulumi.Input[_builtins.str],
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] secret_key_ref: 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}.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: The delegates to connect with.
        """
        pulumi.set(__self__, "secret_key_ref", secret_key_ref)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)

    @_builtins.property
    @pulumi.getter(name="secretKeyRef")
    def secret_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "secret_key_ref")

    @secret_key_ref.setter
    def secret_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        The delegates to connect with.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)


if not MYPY:
    class GcpConnectorOidcAuthenticationArgsDict(TypedDict):
        gcp_project_id: pulumi.Input[_builtins.str]
        """
        The project number of the GCP project that is used to create the workload identity.
        """
        provider_id: pulumi.Input[_builtins.str]
        """
        The OIDC provider ID value configured in GCP.
        """
        service_account_email: pulumi.Input[_builtins.str]
        """
        The service account linked to workload identity pool while setting GCP workload identity provider.
        """
        workload_pool_id: pulumi.Input[_builtins.str]
        """
        The workload pool ID value created in GCP.
        """
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        The delegates to inherit the credentials from.
        """
elif False:
    GcpConnectorOidcAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GcpConnectorOidcAuthenticationArgs:
    def __init__(__self__, *,
                 gcp_project_id: pulumi.Input[_builtins.str],
                 provider_id: pulumi.Input[_builtins.str],
                 service_account_email: pulumi.Input[_builtins.str],
                 workload_pool_id: pulumi.Input[_builtins.str],
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] gcp_project_id: The project number of the GCP project that is used to create the workload identity.
        :param pulumi.Input[_builtins.str] provider_id: The OIDC provider ID value configured in GCP.
        :param pulumi.Input[_builtins.str] service_account_email: The service account linked to workload identity pool while setting GCP workload identity provider.
        :param pulumi.Input[_builtins.str] workload_pool_id: The workload pool ID value created in GCP.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: The delegates to inherit the credentials from.
        """
        pulumi.set(__self__, "gcp_project_id", gcp_project_id)
        pulumi.set(__self__, "provider_id", provider_id)
        pulumi.set(__self__, "service_account_email", service_account_email)
        pulumi.set(__self__, "workload_pool_id", workload_pool_id)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)

    @_builtins.property
    @pulumi.getter(name="gcpProjectId")
    def gcp_project_id(self) -> pulumi.Input[_builtins.str]:
        """
        The project number of the GCP project that is used to create the workload identity.
        """
        return pulumi.get(self, "gcp_project_id")

    @gcp_project_id.setter
    def gcp_project_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "gcp_project_id", value)

    @_builtins.property
    @pulumi.getter(name="providerId")
    def provider_id(self) -> pulumi.Input[_builtins.str]:
        """
        The OIDC provider ID value configured in GCP.
        """
        return pulumi.get(self, "provider_id")

    @provider_id.setter
    def provider_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "provider_id", value)

    @_builtins.property
    @pulumi.getter(name="serviceAccountEmail")
    def service_account_email(self) -> pulumi.Input[_builtins.str]:
        """
        The service account linked to workload identity pool while setting GCP workload identity provider.
        """
        return pulumi.get(self, "service_account_email")

    @service_account_email.setter
    def service_account_email(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "service_account_email", value)

    @_builtins.property
    @pulumi.getter(name="workloadPoolId")
    def workload_pool_id(self) -> pulumi.Input[_builtins.str]:
        """
        The workload pool ID value created in GCP.
        """
        return pulumi.get(self, "workload_pool_id")

    @workload_pool_id.setter
    def workload_pool_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "workload_pool_id", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        The delegates to inherit the credentials from.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)


if not MYPY:
    class GcpSecretManagerConnectorOidcAuthenticationArgsDict(TypedDict):
        gcp_project_id: pulumi.Input[_builtins.str]
        """
        The project number of the GCP project that is used to create the workload identity.
        """
        provider_id: pulumi.Input[_builtins.str]
        """
        The OIDC provider ID value configured in GCP.
        """
        service_account_email: pulumi.Input[_builtins.str]
        """
        The service account linked to workload identity pool while setting GCP workload identity provider.
        """
        workload_pool_id: pulumi.Input[_builtins.str]
        """
        The workload pool ID value created in GCP.
        """
elif False:
    GcpSecretManagerConnectorOidcAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GcpSecretManagerConnectorOidcAuthenticationArgs:
    def __init__(__self__, *,
                 gcp_project_id: pulumi.Input[_builtins.str],
                 provider_id: pulumi.Input[_builtins.str],
                 service_account_email: pulumi.Input[_builtins.str],
                 workload_pool_id: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] gcp_project_id: The project number of the GCP project that is used to create the workload identity.
        :param pulumi.Input[_builtins.str] provider_id: The OIDC provider ID value configured in GCP.
        :param pulumi.Input[_builtins.str] service_account_email: The service account linked to workload identity pool while setting GCP workload identity provider.
        :param pulumi.Input[_builtins.str] workload_pool_id: The workload pool ID value created in GCP.
        """
        pulumi.set(__self__, "gcp_project_id", gcp_project_id)
        pulumi.set(__self__, "provider_id", provider_id)
        pulumi.set(__self__, "service_account_email", service_account_email)
        pulumi.set(__self__, "workload_pool_id", workload_pool_id)

    @_builtins.property
    @pulumi.getter(name="gcpProjectId")
    def gcp_project_id(self) -> pulumi.Input[_builtins.str]:
        """
        The project number of the GCP project that is used to create the workload identity.
        """
        return pulumi.get(self, "gcp_project_id")

    @gcp_project_id.setter
    def gcp_project_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "gcp_project_id", value)

    @_builtins.property
    @pulumi.getter(name="providerId")
    def provider_id(self) -> pulumi.Input[_builtins.str]:
        """
        The OIDC provider ID value configured in GCP.
        """
        return pulumi.get(self, "provider_id")

    @provider_id.setter
    def provider_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "provider_id", value)

    @_builtins.property
    @pulumi.getter(name="serviceAccountEmail")
    def service_account_email(self) -> pulumi.Input[_builtins.str]:
        """
        The service account linked to workload identity pool while setting GCP workload identity provider.
        """
        return pulumi.get(self, "service_account_email")

    @service_account_email.setter
    def service_account_email(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "service_account_email", value)

    @_builtins.property
    @pulumi.getter(name="workloadPoolId")
    def workload_pool_id(self) -> pulumi.Input[_builtins.str]:
        """
        The workload pool ID value created in GCP.
        """
        return pulumi.get(self, "workload_pool_id")

    @workload_pool_id.setter
    def workload_pool_id(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "workload_pool_id", value)


if not MYPY:
    class GitConnectorCredentialsArgsDict(TypedDict):
        http: NotRequired[pulumi.Input['GitConnectorCredentialsHttpArgsDict']]
        """
        Authenticate using Username and password over http(s) for the connection.
        """
        ssh: NotRequired[pulumi.Input['GitConnectorCredentialsSshArgsDict']]
        """
        Authenticate using SSH for the connection.
        """
elif False:
    GitConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitConnectorCredentialsArgs:
    def __init__(__self__, *,
                 http: Optional[pulumi.Input['GitConnectorCredentialsHttpArgs']] = None,
                 ssh: Optional[pulumi.Input['GitConnectorCredentialsSshArgs']] = None):
        """
        :param pulumi.Input['GitConnectorCredentialsHttpArgs'] http: Authenticate using Username and password over http(s) for the connection.
        :param pulumi.Input['GitConnectorCredentialsSshArgs'] ssh: Authenticate using SSH for the connection.
        """
        if http is not None:
            pulumi.set(__self__, "http", http)
        if ssh is not None:
            pulumi.set(__self__, "ssh", ssh)

    @_builtins.property
    @pulumi.getter
    def http(self) -> Optional[pulumi.Input['GitConnectorCredentialsHttpArgs']]:
        """
        Authenticate using Username and password over http(s) for the connection.
        """
        return pulumi.get(self, "http")

    @http.setter
    def http(self, value: Optional[pulumi.Input['GitConnectorCredentialsHttpArgs']]):
        pulumi.set(self, "http", value)

    @_builtins.property
    @pulumi.getter
    def ssh(self) -> Optional[pulumi.Input['GitConnectorCredentialsSshArgs']]:
        """
        Authenticate using SSH for the connection.
        """
        return pulumi.get(self, "ssh")

    @ssh.setter
    def ssh(self, value: Optional[pulumi.Input['GitConnectorCredentialsSshArgs']]):
        pulumi.set(self, "ssh", value)


if not MYPY:
    class GitConnectorCredentialsHttpArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    GitConnectorCredentialsHttpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitConnectorCredentialsHttpArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class GitConnectorCredentialsSshArgsDict(TypedDict):
        ssh_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to the Harness secret containing the ssh 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}.
        """
elif False:
    GitConnectorCredentialsSshArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitConnectorCredentialsSshArgs:
    def __init__(__self__, *,
                 ssh_key_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] ssh_key_ref: Reference to the Harness secret containing the ssh 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}.
        """
        pulumi.set(__self__, "ssh_key_ref", ssh_key_ref)

    @_builtins.property
    @pulumi.getter(name="sshKeyRef")
    def ssh_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the Harness secret containing the ssh 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}.
        """
        return pulumi.get(self, "ssh_key_ref")

    @ssh_key_ref.setter
    def ssh_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "ssh_key_ref", value)


if not MYPY:
    class GitOpsAgentMetadataArgsDict(TypedDict):
        high_availability: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if the agent is deployed in HA mode.
        """
        is_namespaced: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if the agent is namespaced.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The kubernetes namespace where the agent should be installed.
        """
elif False:
    GitOpsAgentMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsAgentMetadataArgs:
    def __init__(__self__, *,
                 high_availability: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_namespaced: Optional[pulumi.Input[_builtins.bool]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] high_availability: Indicates if the agent is deployed in HA mode.
        :param pulumi.Input[_builtins.bool] is_namespaced: Indicates if the agent is namespaced.
        :param pulumi.Input[_builtins.str] namespace: The kubernetes namespace where the agent should be installed.
        """
        if high_availability is not None:
            pulumi.set(__self__, "high_availability", high_availability)
        if is_namespaced is not None:
            pulumi.set(__self__, "is_namespaced", is_namespaced)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter(name="highAvailability")
    def high_availability(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if the agent is deployed in HA mode.
        """
        return pulumi.get(self, "high_availability")

    @high_availability.setter
    def high_availability(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "high_availability", value)

    @_builtins.property
    @pulumi.getter(name="isNamespaced")
    def is_namespaced(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if the agent is namespaced.
        """
        return pulumi.get(self, "is_namespaced")

    @is_namespaced.setter
    def is_namespaced(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_namespaced", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The kubernetes namespace where the agent should be installed.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitOpsApplicationsApplicationArgsDict(TypedDict):
        metadatas: pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataArgsDict']]]
        """
        Metadata corresponding to the resources. This includes all the objects a user must create.
        """
        specs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecArgsDict']]]]
        """
        Specifications of the GitOps application. This includes the repository URL, application definition, source, destination and sync policy.
        """
elif False:
    GitOpsApplicationsApplicationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationArgs:
    def __init__(__self__, *,
                 metadatas: pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataArgs']]],
                 specs: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataArgs']]] metadatas: Metadata corresponding to the resources. This includes all the objects a user must create.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecArgs']]] specs: Specifications of the GitOps application. This includes the repository URL, application definition, source, destination and sync policy.
        """
        pulumi.set(__self__, "metadatas", metadatas)
        if specs is not None:
            pulumi.set(__self__, "specs", specs)

    @_builtins.property
    @pulumi.getter
    def metadatas(self) -> pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataArgs']]]:
        """
        Metadata corresponding to the resources. This includes all the objects a user must create.
        """
        return pulumi.get(self, "metadatas")

    @metadatas.setter
    def metadatas(self, value: pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataArgs']]]):
        pulumi.set(self, "metadatas", value)

    @_builtins.property
    @pulumi.getter
    def specs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecArgs']]]]:
        """
        Specifications of the GitOps application. This includes the repository URL, application definition, source, destination and sync policy.
        """
        return pulumi.get(self, "specs")

    @specs.setter
    def specs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecArgs']]]]):
        pulumi.set(self, "specs", value)


if not MYPY:
    class GitOpsApplicationsApplicationMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations are unstructured key value pairs corresponding to a resource. External tools set these to store and retrieve arbitrary metadata.
        """
        cluster_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the cluster corresponding to the object. API server ignores this if set in any create or update request.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Before the object is removed from the register, it must be empty. Each element serves as a unique identifier for the component that is accountable for removing that entry from the list. Entries in this list can only be removed if the object's deletionTimestamp is not null. The processing and removal of finalizers can happen in any sequence. No order is enforced as it may block the finalizers. Finalizers is a shared field that can be reordered by any actor with authority. If the finalizer list is processed in order, this could result in a scenario where the component in charge of the list's first finalizer is waiting for a signal (generated by a field value, an external system, or another) produced by a component in charge of the list's later finalizer.
        """
        generate_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        An optional prefix that the server will only apply if the Name field is empty to create a unique name. The name returned to the client will differ from the name passed if this field is used. A unique suffix will be added to this value as well. The supplied value must adhere to the same validation guidelines as the Name field and may be reduced by the suffix length necessary to ensure that it is unique on the server. The server will NOT return a 409 if this field is supplied and the created name already exists; instead, it will either return 201 Created or 500 with Reason ServerTimeout, indicating that a unique name could not be found in the allotted time and the client should try again later.
        """
        generation: NotRequired[pulumi.Input[_builtins.str]]
        """
        A sequence number representing a specific generation of the desired state. This is a read-only value populated by the system.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name must be unique within a namespace. It is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Name cannot be updated.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the GitOps application. An empty namespace is equivalent to the namespace of the GitOps agent.
        """
        owner_references: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataOwnerReferenceArgsDict']]]]
        """
        List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
        """
        uid: NotRequired[pulumi.Input[_builtins.str]]
        """
        UID is the unique identifier in time and space value for this object. It is generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
        """
elif False:
    GitOpsApplicationsApplicationMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 cluster_name: Optional[pulumi.Input[_builtins.str]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 generate_name: Optional[pulumi.Input[_builtins.str]] = None,
                 generation: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 owner_references: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataOwnerReferenceArgs']]]] = None,
                 uid: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations are unstructured key value pairs corresponding to a resource. External tools set these to store and retrieve arbitrary metadata.
        :param pulumi.Input[_builtins.str] cluster_name: Name of the cluster corresponding to the object. API server ignores this if set in any create or update request.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: Before the object is removed from the register, it must be empty. Each element serves as a unique identifier for the component that is accountable for removing that entry from the list. Entries in this list can only be removed if the object's deletionTimestamp is not null. The processing and removal of finalizers can happen in any sequence. No order is enforced as it may block the finalizers. Finalizers is a shared field that can be reordered by any actor with authority. If the finalizer list is processed in order, this could result in a scenario where the component in charge of the list's first finalizer is waiting for a signal (generated by a field value, an external system, or another) produced by a component in charge of the list's later finalizer.
        :param pulumi.Input[_builtins.str] generate_name: An optional prefix that the server will only apply if the Name field is empty to create a unique name. The name returned to the client will differ from the name passed if this field is used. A unique suffix will be added to this value as well. The supplied value must adhere to the same validation guidelines as the Name field and may be reduced by the suffix length necessary to ensure that it is unique on the server. The server will NOT return a 409 if this field is supplied and the created name already exists; instead, it will either return 201 Created or 500 with Reason ServerTimeout, indicating that a unique name could not be found in the allotted time and the client should try again later.
        :param pulumi.Input[_builtins.str] generation: A sequence number representing a specific generation of the desired state. This is a read-only value populated by the system.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.
        :param pulumi.Input[_builtins.str] name: Name must be unique within a namespace. It is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Name cannot be updated.
        :param pulumi.Input[_builtins.str] namespace: Namespace of the GitOps application. An empty namespace is equivalent to the namespace of the GitOps agent.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataOwnerReferenceArgs']]] owner_references: List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
        :param pulumi.Input[_builtins.str] uid: UID is the unique identifier in time and space value for this object. It is generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if cluster_name is not None:
            pulumi.set(__self__, "cluster_name", cluster_name)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if generate_name is not None:
            pulumi.set(__self__, "generate_name", generate_name)
        if generation is not None:
            pulumi.set(__self__, "generation", generation)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if owner_references is not None:
            pulumi.set(__self__, "owner_references", owner_references)
        if uid is not None:
            pulumi.set(__self__, "uid", uid)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations are unstructured key value pairs corresponding to a resource. External tools set these to store and retrieve arbitrary metadata.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter(name="clusterName")
    def cluster_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the cluster corresponding to the object. API server ignores this if set in any create or update request.
        """
        return pulumi.get(self, "cluster_name")

    @cluster_name.setter
    def cluster_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cluster_name", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Before the object is removed from the register, it must be empty. Each element serves as a unique identifier for the component that is accountable for removing that entry from the list. Entries in this list can only be removed if the object's deletionTimestamp is not null. The processing and removal of finalizers can happen in any sequence. No order is enforced as it may block the finalizers. Finalizers is a shared field that can be reordered by any actor with authority. If the finalizer list is processed in order, this could result in a scenario where the component in charge of the list's first finalizer is waiting for a signal (generated by a field value, an external system, or another) produced by a component in charge of the list's later finalizer.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter(name="generateName")
    def generate_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        An optional prefix that the server will only apply if the Name field is empty to create a unique name. The name returned to the client will differ from the name passed if this field is used. A unique suffix will be added to this value as well. The supplied value must adhere to the same validation guidelines as the Name field and may be reduced by the suffix length necessary to ensure that it is unique on the server. The server will NOT return a 409 if this field is supplied and the created name already exists; instead, it will either return 201 Created or 500 with Reason ServerTimeout, indicating that a unique name could not be found in the allotted time and the client should try again later.
        """
        return pulumi.get(self, "generate_name")

    @generate_name.setter
    def generate_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "generate_name", value)

    @_builtins.property
    @pulumi.getter
    def generation(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A sequence number representing a specific generation of the desired state. This is a read-only value populated by the system.
        """
        return pulumi.get(self, "generation")

    @generation.setter
    def generation(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "generation", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name must be unique within a namespace. It is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Name cannot be updated.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the GitOps application. An empty namespace is equivalent to the namespace of the GitOps agent.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter(name="ownerReferences")
    def owner_references(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataOwnerReferenceArgs']]]]:
        """
        List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
        """
        return pulumi.get(self, "owner_references")

    @owner_references.setter
    def owner_references(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationMetadataOwnerReferenceArgs']]]]):
        pulumi.set(self, "owner_references", value)

    @_builtins.property
    @pulumi.getter
    def uid(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        UID is the unique identifier in time and space value for this object. It is generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
        """
        return pulumi.get(self, "uid")

    @uid.setter
    def uid(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "uid", value)


if not MYPY:
    class GitOpsApplicationsApplicationMetadataOwnerReferenceArgsDict(TypedDict):
        api_version: NotRequired[pulumi.Input[_builtins.str]]
        """
        API version of the referent.
        """
        block_owner_deletion: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
        """
        controller: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if the reference points to the managing controller.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        Kind of the referent.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the referent.
        """
        uid: NotRequired[pulumi.Input[_builtins.str]]
        """
        UID of the referent.
        """
elif False:
    GitOpsApplicationsApplicationMetadataOwnerReferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationMetadataOwnerReferenceArgs:
    def __init__(__self__, *,
                 api_version: Optional[pulumi.Input[_builtins.str]] = None,
                 block_owner_deletion: Optional[pulumi.Input[_builtins.bool]] = None,
                 controller: Optional[pulumi.Input[_builtins.bool]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 uid: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] api_version: API version of the referent.
        :param pulumi.Input[_builtins.bool] block_owner_deletion: If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
        :param pulumi.Input[_builtins.bool] controller: Indicates if the reference points to the managing controller.
        :param pulumi.Input[_builtins.str] kind: Kind of the referent.
        :param pulumi.Input[_builtins.str] name: Name of the referent.
        :param pulumi.Input[_builtins.str] uid: UID of the referent.
        """
        if api_version is not None:
            pulumi.set(__self__, "api_version", api_version)
        if block_owner_deletion is not None:
            pulumi.set(__self__, "block_owner_deletion", block_owner_deletion)
        if controller is not None:
            pulumi.set(__self__, "controller", controller)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if uid is not None:
            pulumi.set(__self__, "uid", uid)

    @_builtins.property
    @pulumi.getter(name="apiVersion")
    def api_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        API version of the referent.
        """
        return pulumi.get(self, "api_version")

    @api_version.setter
    def api_version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api_version", value)

    @_builtins.property
    @pulumi.getter(name="blockOwnerDeletion")
    def block_owner_deletion(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
        """
        return pulumi.get(self, "block_owner_deletion")

    @block_owner_deletion.setter
    def block_owner_deletion(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "block_owner_deletion", value)

    @_builtins.property
    @pulumi.getter
    def controller(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if the reference points to the managing controller.
        """
        return pulumi.get(self, "controller")

    @controller.setter
    def controller(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "controller", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Kind of the referent.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the referent.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def uid(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        UID of the referent.
        """
        return pulumi.get(self, "uid")

    @uid.setter
    def uid(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "uid", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecArgsDict(TypedDict):
        destinations: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecDestinationArgsDict']]]]
        """
        Information about the GitOps application's destination.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The ArgoCD project name corresponding to this GitOps application. Value must match mappings of ArgoCD projects to harness project.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision history limit for the application.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgsDict']]]]
        """
        Contains all information about the source of the GitOps application.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgsDict']]]]
        """
        List of sources for the GitOps application. Multi Source support
        """
        sync_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyArgsDict']]]]
        """
        Controls when a sync will be performed in response to updates in git.
        """
elif False:
    GitOpsApplicationsApplicationSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecArgs:
    def __init__(__self__, *,
                 destinations: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecDestinationArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgs']]]] = None,
                 sync_policies: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecDestinationArgs']]] destinations: Information about the GitOps application's destination.
        :param pulumi.Input[_builtins.str] project: The ArgoCD project name corresponding to this GitOps application. Value must match mappings of ArgoCD projects to harness project.
        :param pulumi.Input[_builtins.str] revision_history_limit: Revision history limit for the application.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgs']]] source: Contains all information about the source of the GitOps application.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgs']]] sources: List of sources for the GitOps application. Multi Source support
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyArgs']]] sync_policies: Controls when a sync will be performed in response to updates in git.
        """
        if destinations is not None:
            pulumi.set(__self__, "destinations", destinations)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policies is not None:
            pulumi.set(__self__, "sync_policies", sync_policies)

    @_builtins.property
    @pulumi.getter
    def destinations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecDestinationArgs']]]]:
        """
        Information about the GitOps application's destination.
        """
        return pulumi.get(self, "destinations")

    @destinations.setter
    def destinations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecDestinationArgs']]]]):
        pulumi.set(self, "destinations", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The ArgoCD project name corresponding to this GitOps application. Value must match mappings of ArgoCD projects to harness project.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision history limit for the application.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgs']]]]:
        """
        Contains all information about the source of the GitOps application.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgs']]]]:
        """
        List of sources for the GitOps application. Multi Source support
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicies")
    def sync_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyArgs']]]]:
        """
        Controls when a sync will be performed in response to updates in git.
        """
        return pulumi.get(self, "sync_policies")

    @sync_policies.setter
    def sync_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyArgs']]]]):
        pulumi.set(self, "sync_policies", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the kubernetes control plane API.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace of the GitOps application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster server for the GitOps application.
        """
elif False:
    GitOpsApplicationsApplicationSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: URL of the target cluster and must be set to the kubernetes control plane API.
        :param pulumi.Input[_builtins.str] namespace: Target namespace of the GitOps application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster server for the GitOps application.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the kubernetes control plane API.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace of the GitOps application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster server for the GitOps application.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository (git or helm) that contains the GitOps application manifests.
        """
        target_revision: pulumi.Input[_builtins.str]
        """
        Revision of the source to sync the GitOps application to. In case of git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag of the chart's version.
        """
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name, and must be specified for the GitOps applications sourced from a helm repo.
        """
        directories: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryArgsDict']]]]
        """
        Options for applications of type plain YAML or Jsonnet.
        """
        helms: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmArgsDict']]]]
        """
        Helm specific options.
        """
        ksonnets: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetArgsDict']]]]
        """
        Ksonnet specific options.
        """
        kustomizes: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKustomizeArgsDict']]]]
        """
        Options specific to a GitOps application source specific to Kustomize.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the git repository, and is only valid for the GitOps applications sourced from git.
        """
        plugins: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginArgsDict']]]]
        """
        Options specific to config management plugins.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference name to be used in other source spec, used for multi-source applications.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 target_revision: pulumi.Input[_builtins.str],
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directories: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryArgs']]]] = None,
                 helms: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmArgs']]]] = None,
                 ksonnets: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetArgs']]]] = None,
                 kustomizes: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKustomizeArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugins: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginArgs']]]] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (git or helm) that contains the GitOps application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the GitOps application to. In case of git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag of the chart's version.
        :param pulumi.Input[_builtins.str] chart: Helm chart name, and must be specified for the GitOps applications sourced from a helm repo.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryArgs']]] directories: Options for applications of type plain YAML or Jsonnet.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmArgs']]] helms: Helm specific options.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetArgs']]] ksonnets: Ksonnet specific options.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKustomizeArgs']]] kustomizes: Options specific to a GitOps application source specific to Kustomize.
        :param pulumi.Input[_builtins.str] name: Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
        :param pulumi.Input[_builtins.str] path: Directory path within the git repository, and is only valid for the GitOps applications sourced from git.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginArgs']]] plugins: Options specific to config management plugins.
        :param pulumi.Input[_builtins.str] ref: Reference name to be used in other source spec, used for multi-source applications.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        pulumi.set(__self__, "target_revision", target_revision)
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directories is not None:
            pulumi.set(__self__, "directories", directories)
        if helms is not None:
            pulumi.set(__self__, "helms", helms)
        if ksonnets is not None:
            pulumi.set(__self__, "ksonnets", ksonnets)
        if kustomizes is not None:
            pulumi.set(__self__, "kustomizes", kustomizes)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugins is not None:
            pulumi.set(__self__, "plugins", plugins)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository (git or helm) that contains the GitOps application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> pulumi.Input[_builtins.str]:
        """
        Revision of the source to sync the GitOps application to. In case of git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag of the chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "target_revision", value)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name, and must be specified for the GitOps applications sourced from a helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryArgs']]]]:
        """
        Options for applications of type plain YAML or Jsonnet.
        """
        return pulumi.get(self, "directories")

    @directories.setter
    def directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryArgs']]]]):
        pulumi.set(self, "directories", value)

    @_builtins.property
    @pulumi.getter
    def helms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmArgs']]]]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helms")

    @helms.setter
    def helms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmArgs']]]]):
        pulumi.set(self, "helms", value)

    @_builtins.property
    @pulumi.getter
    def ksonnets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetArgs']]]]:
        """
        Ksonnet specific options.
        """
        return pulumi.get(self, "ksonnets")

    @ksonnets.setter
    def ksonnets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetArgs']]]]):
        pulumi.set(self, "ksonnets", value)

    @_builtins.property
    @pulumi.getter
    def kustomizes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKustomizeArgs']]]]:
        """
        Options specific to a GitOps application source specific to Kustomize.
        """
        return pulumi.get(self, "kustomizes")

    @kustomizes.setter
    def kustomizes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKustomizeArgs']]]]):
        pulumi.set(self, "kustomizes", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the git repository, and is only valid for the GitOps applications sourced from git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugins(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginArgs']]]]:
        """
        Options specific to config management plugins.
        """
        return pulumi.get(self, "plugins")

    @plugins.setter
    def plugins(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginArgs']]]]):
        pulumi.set(self, "plugins", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference name to be used in other source spec, used for multi-source applications.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation.
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation.
        """
        jsonnets: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgsDict']]]]
        """
        Options specific to applications of type Jsonnet.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates to scan a directory recursively for manifests.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnets: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgs']]]] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation.
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgs']]] jsonnets: Options specific to applications of type Jsonnet.
        :param pulumi.Input[_builtins.bool] recurse: Indicates to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnets is not None:
            pulumi.set(__self__, "jsonnets", jsonnets)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation.
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation.
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgs']]]]:
        """
        Options specific to applications of type Jsonnet.
        """
        return pulumi.get(self, "jsonnets")

    @jsonnets.setter
    def jsonnets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgs']]]]):
        pulumi.set(self, "jsonnets", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of jsonnet external variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of jsonnet top-level arguments(TLAS).
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of jsonnet external variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of jsonnet top-level arguments(TLAS).
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of jsonnet external variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of jsonnet top-level arguments(TLAS).
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Code of the external variables of jsonnet application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the external variables of jsonnet application.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the external variables of jsonnet application.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Code of the external variables of jsonnet application.
        :param pulumi.Input[_builtins.str] name: Name of the external variables of jsonnet application.
        :param pulumi.Input[_builtins.str] value: Value of the external variables of jsonnet application.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Code of the external variables of jsonnet application.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the external variables of jsonnet application.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the external variables of jsonnet application.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Code of the TLAS of the jsonnet application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the TLAS of the jsonnet application.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the TLAS of the jsonnet application.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Code of the TLAS of the jsonnet application.
        :param pulumi.Input[_builtins.str] name: Name of the TLAS of the jsonnet application.
        :param pulumi.Input[_builtins.str] value: Value of the TLAS of the jsonnet application.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Code of the TLAS of the jsonnet application.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the TLAS of the jsonnet application.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the TLAS of the jsonnet application.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceKsonnetArgsDict(TypedDict):
        environment: NotRequired[pulumi.Input[_builtins.str]]
        """
        Ksonnet application environment name.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgsDict']]]]
        """
        List of ksonnet component parameter override values.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceKsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceKsonnetArgs:
    def __init__(__self__, *,
                 environment: Optional[pulumi.Input[_builtins.str]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgs']]]] = None):
        """
        :param pulumi.Input[_builtins.str] environment: Ksonnet application environment name.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgs']]] parameters: List of ksonnet component parameter override values.
        """
        if environment is not None:
            pulumi.set(__self__, "environment", environment)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @_builtins.property
    @pulumi.getter
    def environment(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Ksonnet application environment name.
        """
        return pulumi.get(self, "environment")

    @environment.setter
    def environment(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "environment", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgs']]]]:
        """
        List of ksonnet component parameter override values.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgs']]]]):
        pulumi.set(self, "parameters", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgsDict(TypedDict):
        component: NotRequired[pulumi.Input[_builtins.str]]
        """
        Component of the parameter of the ksonnet application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the parameter of the ksonnet application.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the parameter of the ksonnet application.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceKsonnetParameterArgs:
    def __init__(__self__, *,
                 component: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] component: Component of the parameter of the ksonnet application.
        :param pulumi.Input[_builtins.str] name: Name of the parameter of the ksonnet application.
        :param pulumi.Input[_builtins.str] value: Value of the parameter of the ksonnet application.
        """
        if component is not None:
            pulumi.set(__self__, "component", component)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def component(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Component of the parameter of the ksonnet application.
        """
        return pulumi.get(self, "component")

    @component.setter
    def component(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "component", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the parameter of the ksonnet application.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the parameter of the ksonnet application.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix prepended to resources for kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of kustomize to use for rendering manifests.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix prepended to resources for kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix prepended to resources for kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginEnvArgsDict']]]]
        """
        Entry in the GitOps application's environment.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginEnvArgs']]] envs: Entry in the GitOps application's environment.
        :param pulumi.Input[_builtins.str] name: Name of the plugin.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginEnvArgs']]]]:
        """
        Entry in the GitOps application's environment.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the variable, usually expressed in uppercase.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the variable.
        """
elif False:
    GitOpsApplicationsApplicationSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the variable, usually expressed in uppercase.
        :param pulumi.Input[_builtins.str] value: Value of the variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the variable, usually expressed in uppercase.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSyncPolicyArgsDict(TypedDict):
        automateds: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgsDict']]]]
        """
        Controls the behavior of an automated sync.
        """
        retries: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryArgsDict']]]]
        """
        Contains information about the strategy to apply when a sync failed.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Options allow you to specify whole app sync-options.
        """
elif False:
    GitOpsApplicationsApplicationSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automateds: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgs']]]] = None,
                 retries: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryArgs']]]] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgs']]] automateds: Controls the behavior of an automated sync.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryArgs']]] retries: Contains information about the strategy to apply when a sync failed.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: Options allow you to specify whole app sync-options.
        """
        if automateds is not None:
            pulumi.set(__self__, "automateds", automateds)
        if retries is not None:
            pulumi.set(__self__, "retries", retries)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automateds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgs']]]]:
        """
        Controls the behavior of an automated sync.
        """
        return pulumi.get(self, "automateds")

    @automateds.setter
    def automateds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgs']]]]):
        pulumi.set(self, "automateds", value)

    @_builtins.property
    @pulumi.getter
    def retries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryArgs']]]]:
        """
        Contains information about the strategy to apply when a sync failed.
        """
        return pulumi.get(self, "retries")

    @retries.setter
    def retries(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryArgs']]]]):
        pulumi.set(self, "retries", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Options allow you to specify whole app sync-options.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates to allows apps to have zero live resources (default: false).
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false).
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates whether to revert resources back to their desired state upon modification in the cluster (default: false).
        """
elif False:
    GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Indicates to allows apps to have zero live resources (default: false).
        :param pulumi.Input[_builtins.bool] prune: Indicates whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false).
        :param pulumi.Input[_builtins.bool] self_heal: Indicates whether to revert resources back to their desired state upon modification in the cluster (default: false).
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates to allows apps to have zero live resources (default: false).
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false).
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates whether to revert resources back to their desired state upon modification in the cluster (default: false).
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSyncPolicyRetryArgsDict(TypedDict):
        backoffs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgsDict']]]]
        """
        Backoff strategy to use on subsequent retries for failing syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitOpsApplicationsApplicationSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoffs: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgs']]]] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgs']]] backoffs: Backoff strategy to use on subsequent retries for failing syncs.
        :param pulumi.Input[_builtins.str] limit: Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoffs is not None:
            pulumi.set(__self__, "backoffs", backoffs)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoffs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgs']]]]:
        """
        Backoff strategy to use on subsequent retries for failing syncs.
        """
        return pulumi.get(self, "backoffs")

    @backoffs.setter
    def backoffs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgs']]]]):
        pulumi.set(self, "backoffs", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h").
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed of the backoff strategy.
        """
elif False:
    GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsApplicationsApplicationSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h").
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed of the backoff strategy.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h").
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed of the backoff strategy.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitOpsClusterRequestArgsDict(TypedDict):
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterArgsDict']]]]
        """
        GitOps cluster details.
        """
        tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Tags for the GitOps cluster. These can be used to search or filter the GitOps agents.
        """
        updated_fields: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Fields which are updated.
        """
        upsert: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if the GitOps cluster should be updated if existing and inserted if not.
        """
elif False:
    GitOpsClusterRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestArgs:
    def __init__(__self__, *,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterArgs']]]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 updated_fields: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 upsert: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterArgs']]] clusters: GitOps cluster details.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags for the GitOps cluster. These can be used to search or filter the GitOps agents.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] updated_fields: Fields which are updated.
        :param pulumi.Input[_builtins.bool] upsert: Indicates if the GitOps cluster should be updated if existing and inserted if not.
        """
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if updated_fields is not None:
            pulumi.set(__self__, "updated_fields", updated_fields)
        if upsert is not None:
            pulumi.set(__self__, "upsert", upsert)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterArgs']]]]:
        """
        GitOps cluster details.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterArgs']]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Tags for the GitOps cluster. These can be used to search or filter the GitOps agents.
        """
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "tags", value)

    @_builtins.property
    @pulumi.getter(name="updatedFields")
    def updated_fields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Fields which are updated.
        """
        return pulumi.get(self, "updated_fields")

    @updated_fields.setter
    def updated_fields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "updated_fields", value)

    @_builtins.property
    @pulumi.getter
    def upsert(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if the GitOps cluster should be updated if existing and inserted if not.
        """
        return pulumi.get(self, "upsert")

    @upsert.setter
    def upsert(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "upsert", value)


if not MYPY:
    class GitOpsClusterRequestClusterArgsDict(TypedDict):
        configs: pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigArgsDict']]]
        """
        GitOps cluster config.
        """
        server: pulumi.Input[_builtins.str]
        """
        API server URL of the kubernetes cluster.
        """
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations for cluster secret metadata.
        """
        cluster_resources: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if cluster level resources should be managed. This setting is used only if cluster is connected in a namespaced mode.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoArgsDict']]]]
        """
        Information about cluster cache and state.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels for cluster secret metadata.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the cluster. If omitted, the server address will be used.
        """
        namespaces: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of namespaces which are accessible in that cluster. Cluster level resources will be ignored if namespace list is not empty.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The ArgoCD project name corresponding to this GitOps cluster. An empty string means that the GitOps cluster belongs to the default project created by Harness.
        """
        refresh_requested_ats: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterRefreshRequestedAtArgsDict']]]]
        """
        Time when cluster cache refresh has been requested.
        """
        shard: NotRequired[pulumi.Input[_builtins.str]]
        """
        Shard number to be managed by a specific application controller pod. Calculated on the fly by the application controller if not specified.
        """
elif False:
    GitOpsClusterRequestClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterArgs:
    def __init__(__self__, *,
                 configs: pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigArgs']]],
                 server: pulumi.Input[_builtins.str],
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 cluster_resources: Optional[pulumi.Input[_builtins.bool]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoArgs']]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 refresh_requested_ats: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterRefreshRequestedAtArgs']]]] = None,
                 shard: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigArgs']]] configs: GitOps cluster config.
        :param pulumi.Input[_builtins.str] server: API server URL of the kubernetes cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations for cluster secret metadata.
        :param pulumi.Input[_builtins.bool] cluster_resources: Indicates if cluster level resources should be managed. This setting is used only if cluster is connected in a namespaced mode.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoArgs']]] infos: Information about cluster cache and state.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels for cluster secret metadata.
        :param pulumi.Input[_builtins.str] name: Name of the cluster. If omitted, the server address will be used.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] namespaces: List of namespaces which are accessible in that cluster. Cluster level resources will be ignored if namespace list is not empty.
        :param pulumi.Input[_builtins.str] project: The ArgoCD project name corresponding to this GitOps cluster. An empty string means that the GitOps cluster belongs to the default project created by Harness.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterRefreshRequestedAtArgs']]] refresh_requested_ats: Time when cluster cache refresh has been requested.
        :param pulumi.Input[_builtins.str] shard: Shard number to be managed by a specific application controller pod. Calculated on the fly by the application controller if not specified.
        """
        pulumi.set(__self__, "configs", configs)
        pulumi.set(__self__, "server", server)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if cluster_resources is not None:
            pulumi.set(__self__, "cluster_resources", cluster_resources)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespaces is not None:
            pulumi.set(__self__, "namespaces", namespaces)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if refresh_requested_ats is not None:
            pulumi.set(__self__, "refresh_requested_ats", refresh_requested_ats)
        if shard is not None:
            pulumi.set(__self__, "shard", shard)

    @_builtins.property
    @pulumi.getter
    def configs(self) -> pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigArgs']]]:
        """
        GitOps cluster config.
        """
        return pulumi.get(self, "configs")

    @configs.setter
    def configs(self, value: pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigArgs']]]):
        pulumi.set(self, "configs", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> pulumi.Input[_builtins.str]:
        """
        API server URL of the kubernetes cluster.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "server", value)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations for cluster secret metadata.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter(name="clusterResources")
    def cluster_resources(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if cluster level resources should be managed. This setting is used only if cluster is connected in a namespaced mode.
        """
        return pulumi.get(self, "cluster_resources")

    @cluster_resources.setter
    def cluster_resources(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "cluster_resources", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoArgs']]]]:
        """
        Information about cluster cache and state.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels for cluster secret metadata.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the cluster. If omitted, the server address will be used.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of namespaces which are accessible in that cluster. Cluster level resources will be ignored if namespace list is not empty.
        """
        return pulumi.get(self, "namespaces")

    @namespaces.setter
    def namespaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "namespaces", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The ArgoCD project name corresponding to this GitOps cluster. An empty string means that the GitOps cluster belongs to the default project created by Harness.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="refreshRequestedAts")
    def refresh_requested_ats(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterRefreshRequestedAtArgs']]]]:
        """
        Time when cluster cache refresh has been requested.
        """
        return pulumi.get(self, "refresh_requested_ats")

    @refresh_requested_ats.setter
    def refresh_requested_ats(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterRefreshRequestedAtArgs']]]]):
        pulumi.set(self, "refresh_requested_ats", value)

    @_builtins.property
    @pulumi.getter
    def shard(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Shard number to be managed by a specific application controller pod. Calculated on the fly by the application controller if not specified.
        """
        return pulumi.get(self, "shard")

    @shard.setter
    def shard(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "shard", value)


if not MYPY:
    class GitOpsClusterRequestClusterConfigArgsDict(TypedDict):
        aws_cluster_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        AWS Cluster name. If set then AWS CLI EKS token command will be used to access cluster.
        """
        bearer_token: NotRequired[pulumi.Input[_builtins.str]]
        """
        Bearer authentication token the cluster.
        """
        cluster_connection_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifies the authentication method used to connect to the cluster.
        """
        disable_compression: NotRequired[pulumi.Input[_builtins.bool]]
        """
        DisableCompression bypasses automatic GZip compression requests to to the cluster's API server. Corresponds to running kubectl with --disable-compression
        """
        exec_provider_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigExecProviderConfigArgsDict']]]]
        """
        Configuration for an exec provider.
        """
        password: NotRequired[pulumi.Input[_builtins.str]]
        """
        Password of the server of the cluster.
        """
        proxy_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        The URL to the proxy to be used for all requests send to the cluster's API server
        """
        role_arn: NotRequired[pulumi.Input[_builtins.str]]
        """
        Optional role ARN. If set then used for AWS IAM Authenticator.
        """
        tls_client_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigTlsClientConfigArgsDict']]]]
        """
        Settings to enable transport layer security.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username of the server of the cluster.
        """
elif False:
    GitOpsClusterRequestClusterConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterConfigArgs:
    def __init__(__self__, *,
                 aws_cluster_name: Optional[pulumi.Input[_builtins.str]] = None,
                 bearer_token: Optional[pulumi.Input[_builtins.str]] = None,
                 cluster_connection_type: Optional[pulumi.Input[_builtins.str]] = None,
                 disable_compression: Optional[pulumi.Input[_builtins.bool]] = None,
                 exec_provider_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigExecProviderConfigArgs']]]] = None,
                 password: Optional[pulumi.Input[_builtins.str]] = None,
                 proxy_url: Optional[pulumi.Input[_builtins.str]] = None,
                 role_arn: Optional[pulumi.Input[_builtins.str]] = None,
                 tls_client_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigTlsClientConfigArgs']]]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] aws_cluster_name: AWS Cluster name. If set then AWS CLI EKS token command will be used to access cluster.
        :param pulumi.Input[_builtins.str] bearer_token: Bearer authentication token the cluster.
        :param pulumi.Input[_builtins.str] cluster_connection_type: Identifies the authentication method used to connect to the cluster.
        :param pulumi.Input[_builtins.bool] disable_compression: DisableCompression bypasses automatic GZip compression requests to to the cluster's API server. Corresponds to running kubectl with --disable-compression
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigExecProviderConfigArgs']]] exec_provider_configs: Configuration for an exec provider.
        :param pulumi.Input[_builtins.str] password: Password of the server of the cluster.
        :param pulumi.Input[_builtins.str] proxy_url: The URL to the proxy to be used for all requests send to the cluster's API server
        :param pulumi.Input[_builtins.str] role_arn: Optional role ARN. If set then used for AWS IAM Authenticator.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigTlsClientConfigArgs']]] tls_client_configs: Settings to enable transport layer security.
        :param pulumi.Input[_builtins.str] username: Username of the server of the cluster.
        """
        if aws_cluster_name is not None:
            pulumi.set(__self__, "aws_cluster_name", aws_cluster_name)
        if bearer_token is not None:
            pulumi.set(__self__, "bearer_token", bearer_token)
        if cluster_connection_type is not None:
            pulumi.set(__self__, "cluster_connection_type", cluster_connection_type)
        if disable_compression is not None:
            pulumi.set(__self__, "disable_compression", disable_compression)
        if exec_provider_configs is not None:
            pulumi.set(__self__, "exec_provider_configs", exec_provider_configs)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if proxy_url is not None:
            pulumi.set(__self__, "proxy_url", proxy_url)
        if role_arn is not None:
            pulumi.set(__self__, "role_arn", role_arn)
        if tls_client_configs is not None:
            pulumi.set(__self__, "tls_client_configs", tls_client_configs)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="awsClusterName")
    def aws_cluster_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        AWS Cluster name. If set then AWS CLI EKS token command will be used to access cluster.
        """
        return pulumi.get(self, "aws_cluster_name")

    @aws_cluster_name.setter
    def aws_cluster_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "aws_cluster_name", value)

    @_builtins.property
    @pulumi.getter(name="bearerToken")
    def bearer_token(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Bearer authentication token the cluster.
        """
        return pulumi.get(self, "bearer_token")

    @bearer_token.setter
    def bearer_token(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "bearer_token", value)

    @_builtins.property
    @pulumi.getter(name="clusterConnectionType")
    def cluster_connection_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies the authentication method used to connect to the cluster.
        """
        return pulumi.get(self, "cluster_connection_type")

    @cluster_connection_type.setter
    def cluster_connection_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cluster_connection_type", value)

    @_builtins.property
    @pulumi.getter(name="disableCompression")
    def disable_compression(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        DisableCompression bypasses automatic GZip compression requests to to the cluster's API server. Corresponds to running kubectl with --disable-compression
        """
        return pulumi.get(self, "disable_compression")

    @disable_compression.setter
    def disable_compression(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "disable_compression", value)

    @_builtins.property
    @pulumi.getter(name="execProviderConfigs")
    def exec_provider_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigExecProviderConfigArgs']]]]:
        """
        Configuration for an exec provider.
        """
        return pulumi.get(self, "exec_provider_configs")

    @exec_provider_configs.setter
    def exec_provider_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigExecProviderConfigArgs']]]]):
        pulumi.set(self, "exec_provider_configs", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Password of the server of the cluster.
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter(name="proxyUrl")
    def proxy_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The URL to the proxy to be used for all requests send to the cluster's API server
        """
        return pulumi.get(self, "proxy_url")

    @proxy_url.setter
    def proxy_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "proxy_url", value)

    @_builtins.property
    @pulumi.getter(name="roleARN")
    def role_arn(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Optional role ARN. If set then used for AWS IAM Authenticator.
        """
        return pulumi.get(self, "role_arn")

    @role_arn.setter
    def role_arn(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "role_arn", value)

    @_builtins.property
    @pulumi.getter(name="tlsClientConfigs")
    def tls_client_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigTlsClientConfigArgs']]]]:
        """
        Settings to enable transport layer security.
        """
        return pulumi.get(self, "tls_client_configs")

    @tls_client_configs.setter
    def tls_client_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterConfigTlsClientConfigArgs']]]]):
        pulumi.set(self, "tls_client_configs", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username of the server of the cluster.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitOpsClusterRequestClusterConfigExecProviderConfigArgsDict(TypedDict):
        api_version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Preferred input version of the ExecInfo.
        """
        args: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Arguments to pass to the command when executing it.
        """
        command: NotRequired[pulumi.Input[_builtins.str]]
        """
        Command to execute.
        """
        env: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Additional environment variables to expose to the process.
        """
        install_hint: NotRequired[pulumi.Input[_builtins.str]]
        """
        Message displayed when the executable is not found.
        """
elif False:
    GitOpsClusterRequestClusterConfigExecProviderConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterConfigExecProviderConfigArgs:
    def __init__(__self__, *,
                 api_version: Optional[pulumi.Input[_builtins.str]] = None,
                 args: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 command: Optional[pulumi.Input[_builtins.str]] = None,
                 env: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 install_hint: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] api_version: Preferred input version of the ExecInfo.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] args: Arguments to pass to the command when executing it.
        :param pulumi.Input[_builtins.str] command: Command to execute.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] env: Additional environment variables to expose to the process.
        :param pulumi.Input[_builtins.str] install_hint: Message displayed when the executable is not found.
        """
        if api_version is not None:
            pulumi.set(__self__, "api_version", api_version)
        if args is not None:
            pulumi.set(__self__, "args", args)
        if command is not None:
            pulumi.set(__self__, "command", command)
        if env is not None:
            pulumi.set(__self__, "env", env)
        if install_hint is not None:
            pulumi.set(__self__, "install_hint", install_hint)

    @_builtins.property
    @pulumi.getter(name="apiVersion")
    def api_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Preferred input version of the ExecInfo.
        """
        return pulumi.get(self, "api_version")

    @api_version.setter
    def api_version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api_version", value)

    @_builtins.property
    @pulumi.getter
    def args(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Arguments to pass to the command when executing it.
        """
        return pulumi.get(self, "args")

    @args.setter
    def args(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "args", value)

    @_builtins.property
    @pulumi.getter
    def command(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Command to execute.
        """
        return pulumi.get(self, "command")

    @command.setter
    def command(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "command", value)

    @_builtins.property
    @pulumi.getter
    def env(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Additional environment variables to expose to the process.
        """
        return pulumi.get(self, "env")

    @env.setter
    def env(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "env", value)

    @_builtins.property
    @pulumi.getter(name="installHint")
    def install_hint(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Message displayed when the executable is not found.
        """
        return pulumi.get(self, "install_hint")

    @install_hint.setter
    def install_hint(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "install_hint", value)


if not MYPY:
    class GitOpsClusterRequestClusterConfigTlsClientConfigArgsDict(TypedDict):
        ca_data: NotRequired[pulumi.Input[_builtins.str]]
        """
        CA data holds PEM-encoded bytes (typically read from a root certificates bundle). Use this if you are using self-signed certificates. CAData takes precedence over CAFile. The value should be base64 encoded.
        """
        cert_data: NotRequired[pulumi.Input[_builtins.str]]
        """
        Certificate data holds PEM-encoded bytes (typically read from a client certificate file). CertData takes precedence over CertFile. Use this if you are using mTLS. The value should be base64 encoded.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if the TLS connection to the cluster should be insecure.
        """
        key_data: NotRequired[pulumi.Input[_builtins.str]]
        """
        Key data holds PEM-encoded bytes (typically read from a client certificate key file). KeyData takes precedence over KeyFile. Use this if you are using mTLS. The value should be base64 encoded.
        """
        server_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Server name for SNI in the client to check server certificates against. If ServerName is empty, the hostname used to contact the server is used.
        """
elif False:
    GitOpsClusterRequestClusterConfigTlsClientConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterConfigTlsClientConfigArgs:
    def __init__(__self__, *,
                 ca_data: Optional[pulumi.Input[_builtins.str]] = None,
                 cert_data: Optional[pulumi.Input[_builtins.str]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 key_data: Optional[pulumi.Input[_builtins.str]] = None,
                 server_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] ca_data: CA data holds PEM-encoded bytes (typically read from a root certificates bundle). Use this if you are using self-signed certificates. CAData takes precedence over CAFile. The value should be base64 encoded.
        :param pulumi.Input[_builtins.str] cert_data: Certificate data holds PEM-encoded bytes (typically read from a client certificate file). CertData takes precedence over CertFile. Use this if you are using mTLS. The value should be base64 encoded.
        :param pulumi.Input[_builtins.bool] insecure: Indicates if the TLS connection to the cluster should be insecure.
        :param pulumi.Input[_builtins.str] key_data: Key data holds PEM-encoded bytes (typically read from a client certificate key file). KeyData takes precedence over KeyFile. Use this if you are using mTLS. The value should be base64 encoded.
        :param pulumi.Input[_builtins.str] server_name: Server name for SNI in the client to check server certificates against. If ServerName is empty, the hostname used to contact the server is used.
        """
        if ca_data is not None:
            pulumi.set(__self__, "ca_data", ca_data)
        if cert_data is not None:
            pulumi.set(__self__, "cert_data", cert_data)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if key_data is not None:
            pulumi.set(__self__, "key_data", key_data)
        if server_name is not None:
            pulumi.set(__self__, "server_name", server_name)

    @_builtins.property
    @pulumi.getter(name="caData")
    def ca_data(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        CA data holds PEM-encoded bytes (typically read from a root certificates bundle). Use this if you are using self-signed certificates. CAData takes precedence over CAFile. The value should be base64 encoded.
        """
        return pulumi.get(self, "ca_data")

    @ca_data.setter
    def ca_data(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ca_data", value)

    @_builtins.property
    @pulumi.getter(name="certData")
    def cert_data(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Certificate data holds PEM-encoded bytes (typically read from a client certificate file). CertData takes precedence over CertFile. Use this if you are using mTLS. The value should be base64 encoded.
        """
        return pulumi.get(self, "cert_data")

    @cert_data.setter
    def cert_data(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cert_data", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if the TLS connection to the cluster should be insecure.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="keyData")
    def key_data(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Key data holds PEM-encoded bytes (typically read from a client certificate key file). KeyData takes precedence over KeyFile. Use this if you are using mTLS. The value should be base64 encoded.
        """
        return pulumi.get(self, "key_data")

    @key_data.setter
    def key_data(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key_data", value)

    @_builtins.property
    @pulumi.getter(name="serverName")
    def server_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Server name for SNI in the client to check server certificates against. If ServerName is empty, the hostname used to contact the server is used.
        """
        return pulumi.get(self, "server_name")

    @server_name.setter
    def server_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server_name", value)


if not MYPY:
    class GitOpsClusterRequestClusterInfoArgsDict(TypedDict):
        api_versions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of API versions supported by the cluster.
        """
        applications_count: NotRequired[pulumi.Input[_builtins.str]]
        """
        Number of applications managed by Argo CD on the cluster.
        """
        cache_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoCacheInfoArgsDict']]]]
        """
        Information about the cluster cache.
        """
        connection_states: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateArgsDict']]]]
        """
        Information about the connection to the cluster.
        """
        server_version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Kubernetes version of the cluster.
        """
elif False:
    GitOpsClusterRequestClusterInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterInfoArgs:
    def __init__(__self__, *,
                 api_versions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 applications_count: Optional[pulumi.Input[_builtins.str]] = None,
                 cache_infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoCacheInfoArgs']]]] = None,
                 connection_states: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateArgs']]]] = None,
                 server_version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_versions: List of API versions supported by the cluster.
        :param pulumi.Input[_builtins.str] applications_count: Number of applications managed by Argo CD on the cluster.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoCacheInfoArgs']]] cache_infos: Information about the cluster cache.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateArgs']]] connection_states: Information about the connection to the cluster.
        :param pulumi.Input[_builtins.str] server_version: Kubernetes version of the cluster.
        """
        if api_versions is not None:
            pulumi.set(__self__, "api_versions", api_versions)
        if applications_count is not None:
            pulumi.set(__self__, "applications_count", applications_count)
        if cache_infos is not None:
            pulumi.set(__self__, "cache_infos", cache_infos)
        if connection_states is not None:
            pulumi.set(__self__, "connection_states", connection_states)
        if server_version is not None:
            pulumi.set(__self__, "server_version", server_version)

    @_builtins.property
    @pulumi.getter(name="apiVersions")
    def api_versions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of API versions supported by the cluster.
        """
        return pulumi.get(self, "api_versions")

    @api_versions.setter
    def api_versions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "api_versions", value)

    @_builtins.property
    @pulumi.getter(name="applicationsCount")
    def applications_count(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Number of applications managed by Argo CD on the cluster.
        """
        return pulumi.get(self, "applications_count")

    @applications_count.setter
    def applications_count(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "applications_count", value)

    @_builtins.property
    @pulumi.getter(name="cacheInfos")
    def cache_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoCacheInfoArgs']]]]:
        """
        Information about the cluster cache.
        """
        return pulumi.get(self, "cache_infos")

    @cache_infos.setter
    def cache_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoCacheInfoArgs']]]]):
        pulumi.set(self, "cache_infos", value)

    @_builtins.property
    @pulumi.getter(name="connectionStates")
    def connection_states(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateArgs']]]]:
        """
        Information about the connection to the cluster.
        """
        return pulumi.get(self, "connection_states")

    @connection_states.setter
    def connection_states(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateArgs']]]]):
        pulumi.set(self, "connection_states", value)

    @_builtins.property
    @pulumi.getter(name="serverVersion")
    def server_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Kubernetes version of the cluster.
        """
        return pulumi.get(self, "server_version")

    @server_version.setter
    def server_version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server_version", value)


if not MYPY:
    class GitOpsClusterRequestClusterInfoCacheInfoArgsDict(TypedDict):
        apis_count: NotRequired[pulumi.Input[_builtins.str]]
        """
        Number of observed kubernetes API count.
        """
        last_cache_sync_time: NotRequired[pulumi.Input[_builtins.str]]
        """
        Time of most recent cache synchronization.
        """
        resources_count: NotRequired[pulumi.Input[_builtins.str]]
        """
        Number of observed kubernetes resources.
        """
elif False:
    GitOpsClusterRequestClusterInfoCacheInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterInfoCacheInfoArgs:
    def __init__(__self__, *,
                 apis_count: Optional[pulumi.Input[_builtins.str]] = None,
                 last_cache_sync_time: Optional[pulumi.Input[_builtins.str]] = None,
                 resources_count: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] apis_count: Number of observed kubernetes API count.
        :param pulumi.Input[_builtins.str] last_cache_sync_time: Time of most recent cache synchronization.
        :param pulumi.Input[_builtins.str] resources_count: Number of observed kubernetes resources.
        """
        if apis_count is not None:
            pulumi.set(__self__, "apis_count", apis_count)
        if last_cache_sync_time is not None:
            pulumi.set(__self__, "last_cache_sync_time", last_cache_sync_time)
        if resources_count is not None:
            pulumi.set(__self__, "resources_count", resources_count)

    @_builtins.property
    @pulumi.getter(name="apisCount")
    def apis_count(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Number of observed kubernetes API count.
        """
        return pulumi.get(self, "apis_count")

    @apis_count.setter
    def apis_count(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "apis_count", value)

    @_builtins.property
    @pulumi.getter(name="lastCacheSyncTime")
    def last_cache_sync_time(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Time of most recent cache synchronization.
        """
        return pulumi.get(self, "last_cache_sync_time")

    @last_cache_sync_time.setter
    def last_cache_sync_time(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_cache_sync_time", value)

    @_builtins.property
    @pulumi.getter(name="resourcesCount")
    def resources_count(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Number of observed kubernetes resources.
        """
        return pulumi.get(self, "resources_count")

    @resources_count.setter
    def resources_count(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "resources_count", value)


if not MYPY:
    class GitOpsClusterRequestClusterInfoConnectionStateArgsDict(TypedDict):
        attempted_ats: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgsDict']]]]
        """
        Time when cluster cache refresh has been requested.
        """
        message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Information about the connection status.
        """
        status: NotRequired[pulumi.Input[_builtins.str]]
        """
        Current status indicator of the connection.
        """
elif False:
    GitOpsClusterRequestClusterInfoConnectionStateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterInfoConnectionStateArgs:
    def __init__(__self__, *,
                 attempted_ats: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgs']]]] = None,
                 message: Optional[pulumi.Input[_builtins.str]] = None,
                 status: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgs']]] attempted_ats: Time when cluster cache refresh has been requested.
        :param pulumi.Input[_builtins.str] message: Information about the connection status.
        :param pulumi.Input[_builtins.str] status: Current status indicator of the connection.
        """
        if attempted_ats is not None:
            pulumi.set(__self__, "attempted_ats", attempted_ats)
        if message is not None:
            pulumi.set(__self__, "message", message)
        if status is not None:
            pulumi.set(__self__, "status", status)

    @_builtins.property
    @pulumi.getter(name="attemptedAts")
    def attempted_ats(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgs']]]]:
        """
        Time when cluster cache refresh has been requested.
        """
        return pulumi.get(self, "attempted_ats")

    @attempted_ats.setter
    def attempted_ats(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgs']]]]):
        pulumi.set(self, "attempted_ats", value)

    @_builtins.property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Information about the connection status.
        """
        return pulumi.get(self, "message")

    @message.setter
    def message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "message", value)

    @_builtins.property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Current status indicator of the connection.
        """
        return pulumi.get(self, "status")

    @status.setter
    def status(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "status", value)


if not MYPY:
    class GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgsDict(TypedDict):
        nanos: NotRequired[pulumi.Input[_builtins.int]]
        """
        Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.
        """
        seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
        """
elif False:
    GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterInfoConnectionStateAttemptedAtArgs:
    def __init__(__self__, *,
                 nanos: Optional[pulumi.Input[_builtins.int]] = None,
                 seconds: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.int] nanos: Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.
        :param pulumi.Input[_builtins.str] seconds: Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
        """
        if nanos is not None:
            pulumi.set(__self__, "nanos", nanos)
        if seconds is not None:
            pulumi.set(__self__, "seconds", seconds)

    @_builtins.property
    @pulumi.getter
    def nanos(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.
        """
        return pulumi.get(self, "nanos")

    @nanos.setter
    def nanos(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "nanos", value)

    @_builtins.property
    @pulumi.getter
    def seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
        """
        return pulumi.get(self, "seconds")

    @seconds.setter
    def seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "seconds", value)


if not MYPY:
    class GitOpsClusterRequestClusterRefreshRequestedAtArgsDict(TypedDict):
        nanos: NotRequired[pulumi.Input[_builtins.int]]
        """
        Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.
        """
        seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
        """
elif False:
    GitOpsClusterRequestClusterRefreshRequestedAtArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsClusterRequestClusterRefreshRequestedAtArgs:
    def __init__(__self__, *,
                 nanos: Optional[pulumi.Input[_builtins.int]] = None,
                 seconds: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.int] nanos: Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.
        :param pulumi.Input[_builtins.str] seconds: Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
        """
        if nanos is not None:
            pulumi.set(__self__, "nanos", nanos)
        if seconds is not None:
            pulumi.set(__self__, "seconds", seconds)

    @_builtins.property
    @pulumi.getter
    def nanos(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.
        """
        return pulumi.get(self, "nanos")

    @nanos.setter
    def nanos(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "nanos", value)

    @_builtins.property
    @pulumi.getter
    def seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
        """
        return pulumi.get(self, "seconds")

    @seconds.setter
    def seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "seconds", value)


if not MYPY:
    class GitOpsGnupgRequestArgsDict(TypedDict):
        upsert: pulumi.Input[_builtins.bool]
        """
        Indicates if the GnuPG Key should be inserted if not present or updated if present.
        """
        publickeys: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsGnupgRequestPublickeyArgsDict']]]]
        """
        Public key details.
        """
elif False:
    GitOpsGnupgRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsGnupgRequestArgs:
    def __init__(__self__, *,
                 upsert: pulumi.Input[_builtins.bool],
                 publickeys: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsGnupgRequestPublickeyArgs']]]] = None):
        """
        :param pulumi.Input[_builtins.bool] upsert: Indicates if the GnuPG Key should be inserted if not present or updated if present.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsGnupgRequestPublickeyArgs']]] publickeys: Public key details.
        """
        pulumi.set(__self__, "upsert", upsert)
        if publickeys is not None:
            pulumi.set(__self__, "publickeys", publickeys)

    @_builtins.property
    @pulumi.getter
    def upsert(self) -> pulumi.Input[_builtins.bool]:
        """
        Indicates if the GnuPG Key should be inserted if not present or updated if present.
        """
        return pulumi.get(self, "upsert")

    @upsert.setter
    def upsert(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "upsert", value)

    @_builtins.property
    @pulumi.getter
    def publickeys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsGnupgRequestPublickeyArgs']]]]:
        """
        Public key details.
        """
        return pulumi.get(self, "publickeys")

    @publickeys.setter
    def publickeys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsGnupgRequestPublickeyArgs']]]]):
        pulumi.set(self, "publickeys", value)


if not MYPY:
    class GitOpsGnupgRequestPublickeyArgsDict(TypedDict):
        key_data: pulumi.Input[_builtins.str]
        """
        KeyData holds the raw key data, in base64 encoded format.
        """
        fingerprint: NotRequired[pulumi.Input[_builtins.str]]
        """
        Fingerprint is the fingerprint of the key
        """
        key_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        KeyID specifies the key ID, in hexadecimal string format.
        """
        owner: NotRequired[pulumi.Input[_builtins.str]]
        """
        Owner holds the owner identification, e.g. a name and e-mail address
        """
        sub_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        SubType holds the key's sub type
        """
        trust: NotRequired[pulumi.Input[_builtins.str]]
        """
        Trust holds the level of trust assigned to this key
        """
elif False:
    GitOpsGnupgRequestPublickeyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsGnupgRequestPublickeyArgs:
    def __init__(__self__, *,
                 key_data: pulumi.Input[_builtins.str],
                 fingerprint: Optional[pulumi.Input[_builtins.str]] = None,
                 key_id: Optional[pulumi.Input[_builtins.str]] = None,
                 owner: Optional[pulumi.Input[_builtins.str]] = None,
                 sub_type: Optional[pulumi.Input[_builtins.str]] = None,
                 trust: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] key_data: KeyData holds the raw key data, in base64 encoded format.
        :param pulumi.Input[_builtins.str] fingerprint: Fingerprint is the fingerprint of the key
        :param pulumi.Input[_builtins.str] key_id: KeyID specifies the key ID, in hexadecimal string format.
        :param pulumi.Input[_builtins.str] owner: Owner holds the owner identification, e.g. a name and e-mail address
        :param pulumi.Input[_builtins.str] sub_type: SubType holds the key's sub type
        :param pulumi.Input[_builtins.str] trust: Trust holds the level of trust assigned to this key
        """
        pulumi.set(__self__, "key_data", key_data)
        if fingerprint is not None:
            pulumi.set(__self__, "fingerprint", fingerprint)
        if key_id is not None:
            pulumi.set(__self__, "key_id", key_id)
        if owner is not None:
            pulumi.set(__self__, "owner", owner)
        if sub_type is not None:
            pulumi.set(__self__, "sub_type", sub_type)
        if trust is not None:
            pulumi.set(__self__, "trust", trust)

    @_builtins.property
    @pulumi.getter(name="keyData")
    def key_data(self) -> pulumi.Input[_builtins.str]:
        """
        KeyData holds the raw key data, in base64 encoded format.
        """
        return pulumi.get(self, "key_data")

    @key_data.setter
    def key_data(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key_data", value)

    @_builtins.property
    @pulumi.getter
    def fingerprint(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Fingerprint is the fingerprint of the key
        """
        return pulumi.get(self, "fingerprint")

    @fingerprint.setter
    def fingerprint(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "fingerprint", value)

    @_builtins.property
    @pulumi.getter(name="keyId")
    def key_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        KeyID specifies the key ID, in hexadecimal string format.
        """
        return pulumi.get(self, "key_id")

    @key_id.setter
    def key_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key_id", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Owner holds the owner identification, e.g. a name and e-mail address
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="subType")
    def sub_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SubType holds the key's sub type
        """
        return pulumi.get(self, "sub_type")

    @sub_type.setter
    def sub_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "sub_type", value)

    @_builtins.property
    @pulumi.getter
    def trust(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Trust holds the level of trust assigned to this key
        """
        return pulumi.get(self, "trust")

    @trust.setter
    def trust(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "trust", value)


if not MYPY:
    class GitOpsRepoCertRequestArgsDict(TypedDict):
        certificates: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateArgsDict']]]]
        """
        certificates details.
        """
        upsert: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if the GitOps repository certificate should be updated if existing and inserted if not.
        """
elif False:
    GitOpsRepoCertRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepoCertRequestArgs:
    def __init__(__self__, *,
                 certificates: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateArgs']]]] = None,
                 upsert: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateArgs']]] certificates: certificates details.
        :param pulumi.Input[_builtins.bool] upsert: Indicates if the GitOps repository certificate should be updated if existing and inserted if not.
        """
        if certificates is not None:
            pulumi.set(__self__, "certificates", certificates)
        if upsert is not None:
            pulumi.set(__self__, "upsert", upsert)

    @_builtins.property
    @pulumi.getter
    def certificates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateArgs']]]]:
        """
        certificates details.
        """
        return pulumi.get(self, "certificates")

    @certificates.setter
    def certificates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateArgs']]]]):
        pulumi.set(self, "certificates", value)

    @_builtins.property
    @pulumi.getter
    def upsert(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if the GitOps repository certificate should be updated if existing and inserted if not.
        """
        return pulumi.get(self, "upsert")

    @upsert.setter
    def upsert(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "upsert", value)


if not MYPY:
    class GitOpsRepoCertRequestCertificateArgsDict(TypedDict):
        items: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateItemArgsDict']]]]
        """
        List of certificates to be processed.
        """
        metadatas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateMetadataArgsDict']]]]
        """
        metadata details
        """
elif False:
    GitOpsRepoCertRequestCertificateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepoCertRequestCertificateArgs:
    def __init__(__self__, *,
                 items: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateItemArgs']]]] = None,
                 metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateMetadataArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateItemArgs']]] items: List of certificates to be processed.
        :param pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateMetadataArgs']]] metadatas: metadata details
        """
        if items is not None:
            pulumi.set(__self__, "items", items)
        if metadatas is not None:
            pulumi.set(__self__, "metadatas", metadatas)

    @_builtins.property
    @pulumi.getter
    def items(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateItemArgs']]]]:
        """
        List of certificates to be processed.
        """
        return pulumi.get(self, "items")

    @items.setter
    def items(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateItemArgs']]]]):
        pulumi.set(self, "items", value)

    @_builtins.property
    @pulumi.getter
    def metadatas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateMetadataArgs']]]]:
        """
        metadata details
        """
        return pulumi.get(self, "metadatas")

    @metadatas.setter
    def metadatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitOpsRepoCertRequestCertificateMetadataArgs']]]]):
        pulumi.set(self, "metadatas", value)


if not MYPY:
    class GitOpsRepoCertRequestCertificateItemArgsDict(TypedDict):
        cert_data: NotRequired[pulumi.Input[_builtins.str]]
        """
        CertData contains the actual certificate data, dependent on the certificate type. The value should be base64 encoded
        """
        cert_info: NotRequired[pulumi.Input[_builtins.str]]
        """
        CertInfo will hold additional certificate info, dependent on the certificate type .
        """
        cert_sub_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        CertSubType specifies the sub type of the cert, i.e. ssh-rsa.
        """
        cert_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        CertType specifies the type of the certificate - currently one of https or ssh.
        """
        server_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        ServerName specifies the DNS name of the server this certificate is intended.
        """
elif False:
    GitOpsRepoCertRequestCertificateItemArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepoCertRequestCertificateItemArgs:
    def __init__(__self__, *,
                 cert_data: Optional[pulumi.Input[_builtins.str]] = None,
                 cert_info: Optional[pulumi.Input[_builtins.str]] = None,
                 cert_sub_type: Optional[pulumi.Input[_builtins.str]] = None,
                 cert_type: Optional[pulumi.Input[_builtins.str]] = None,
                 server_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] cert_data: CertData contains the actual certificate data, dependent on the certificate type. The value should be base64 encoded
        :param pulumi.Input[_builtins.str] cert_info: CertInfo will hold additional certificate info, dependent on the certificate type .
        :param pulumi.Input[_builtins.str] cert_sub_type: CertSubType specifies the sub type of the cert, i.e. ssh-rsa.
        :param pulumi.Input[_builtins.str] cert_type: CertType specifies the type of the certificate - currently one of https or ssh.
        :param pulumi.Input[_builtins.str] server_name: ServerName specifies the DNS name of the server this certificate is intended.
        """
        if cert_data is not None:
            pulumi.set(__self__, "cert_data", cert_data)
        if cert_info is not None:
            pulumi.set(__self__, "cert_info", cert_info)
        if cert_sub_type is not None:
            pulumi.set(__self__, "cert_sub_type", cert_sub_type)
        if cert_type is not None:
            pulumi.set(__self__, "cert_type", cert_type)
        if server_name is not None:
            pulumi.set(__self__, "server_name", server_name)

    @_builtins.property
    @pulumi.getter(name="certData")
    def cert_data(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        CertData contains the actual certificate data, dependent on the certificate type. The value should be base64 encoded
        """
        return pulumi.get(self, "cert_data")

    @cert_data.setter
    def cert_data(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cert_data", value)

    @_builtins.property
    @pulumi.getter(name="certInfo")
    def cert_info(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        CertInfo will hold additional certificate info, dependent on the certificate type .
        """
        return pulumi.get(self, "cert_info")

    @cert_info.setter
    def cert_info(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cert_info", value)

    @_builtins.property
    @pulumi.getter(name="certSubType")
    def cert_sub_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        CertSubType specifies the sub type of the cert, i.e. ssh-rsa.
        """
        return pulumi.get(self, "cert_sub_type")

    @cert_sub_type.setter
    def cert_sub_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cert_sub_type", value)

    @_builtins.property
    @pulumi.getter(name="certType")
    def cert_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        CertType specifies the type of the certificate - currently one of https or ssh.
        """
        return pulumi.get(self, "cert_type")

    @cert_type.setter
    def cert_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cert_type", value)

    @_builtins.property
    @pulumi.getter(name="serverName")
    def server_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        ServerName specifies the DNS name of the server this certificate is intended.
        """
        return pulumi.get(self, "server_name")

    @server_name.setter
    def server_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server_name", value)


if not MYPY:
    class GitOpsRepoCertRequestCertificateMetadataArgsDict(TypedDict):
        continue_: NotRequired[pulumi.Input[_builtins.str]]
        """
        continue may be set if the user set a limit on the number of items returned.
        """
        remaining_item_count: NotRequired[pulumi.Input[_builtins.str]]
        """
        subsequent items in the list.
        """
        resource_version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifies the server's internal version.
        """
        self_link: NotRequired[pulumi.Input[_builtins.str]]
        """
        selfLink is a URL representing this object.
        """
elif False:
    GitOpsRepoCertRequestCertificateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepoCertRequestCertificateMetadataArgs:
    def __init__(__self__, *,
                 continue_: Optional[pulumi.Input[_builtins.str]] = None,
                 remaining_item_count: Optional[pulumi.Input[_builtins.str]] = None,
                 resource_version: Optional[pulumi.Input[_builtins.str]] = None,
                 self_link: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] continue_: continue may be set if the user set a limit on the number of items returned.
        :param pulumi.Input[_builtins.str] remaining_item_count: subsequent items in the list.
        :param pulumi.Input[_builtins.str] resource_version: Identifies the server's internal version.
        :param pulumi.Input[_builtins.str] self_link: selfLink is a URL representing this object.
        """
        if continue_ is not None:
            pulumi.set(__self__, "continue_", continue_)
        if remaining_item_count is not None:
            pulumi.set(__self__, "remaining_item_count", remaining_item_count)
        if resource_version is not None:
            pulumi.set(__self__, "resource_version", resource_version)
        if self_link is not None:
            pulumi.set(__self__, "self_link", self_link)

    @_builtins.property
    @pulumi.getter(name="continue")
    def continue_(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        continue may be set if the user set a limit on the number of items returned.
        """
        return pulumi.get(self, "continue_")

    @continue_.setter
    def continue_(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "continue_", value)

    @_builtins.property
    @pulumi.getter(name="remainingItemCount")
    def remaining_item_count(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        subsequent items in the list.
        """
        return pulumi.get(self, "remaining_item_count")

    @remaining_item_count.setter
    def remaining_item_count(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "remaining_item_count", value)

    @_builtins.property
    @pulumi.getter(name="resourceVersion")
    def resource_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies the server's internal version.
        """
        return pulumi.get(self, "resource_version")

    @resource_version.setter
    def resource_version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "resource_version", value)

    @_builtins.property
    @pulumi.getter(name="selfLink")
    def self_link(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        selfLink is a URL representing this object.
        """
        return pulumi.get(self, "self_link")

    @self_link.setter
    def self_link(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "self_link", value)


if not MYPY:
    class GitOpsRepoCredCredArgsDict(TypedDict):
        enable_oci: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Specifies whether helm-oci support should be enabled for this repo.
        """
        github_app_enterprise_base_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies the GitHub API URL for GitHub app authentication.
        """
        github_app_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies the Github App ID of the app used to access the repo for GitHub app authentication.
        """
        github_app_installation_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies the ID of the installed GitHub App for GitHub app authentication.
        """
        github_app_private_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        github*app*private_key specifies the private key PEM data for authentication via GitHub app.
        """
        password: NotRequired[pulumi.Input[_builtins.str]]
        """
        Password or PAT to be used for authenticating the remote repository.
        """
        ssh_private_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        """
        tls_client_cert_data: NotRequired[pulumi.Input[_builtins.str]]
        """
        Certificate in PEM format for authenticating at the repo server. This is used for mTLS.
        """
        tls_client_cert_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        Private key in PEM format for authenticating at the repo server. This is used for mTLS.
        """
        type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Type specifies the type of the repoCreds.Can be either 'git' or 'helm. 'git' is assumed if empty or absent
        """
        url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the remote repository. Make sure you pass at least an org, this will not work if you just provide the host, for eg. "https://github.com"
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to be used for authenticating the remote repository.
        """
elif False:
    GitOpsRepoCredCredArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepoCredCredArgs:
    def __init__(__self__, *,
                 enable_oci: Optional[pulumi.Input[_builtins.bool]] = None,
                 github_app_enterprise_base_url: Optional[pulumi.Input[_builtins.str]] = None,
                 github_app_id: Optional[pulumi.Input[_builtins.str]] = None,
                 github_app_installation_id: Optional[pulumi.Input[_builtins.str]] = None,
                 github_app_private_key: Optional[pulumi.Input[_builtins.str]] = None,
                 password: Optional[pulumi.Input[_builtins.str]] = None,
                 ssh_private_key: Optional[pulumi.Input[_builtins.str]] = None,
                 tls_client_cert_data: Optional[pulumi.Input[_builtins.str]] = None,
                 tls_client_cert_key: Optional[pulumi.Input[_builtins.str]] = None,
                 type: Optional[pulumi.Input[_builtins.str]] = None,
                 url: Optional[pulumi.Input[_builtins.str]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] enable_oci: Specifies whether helm-oci support should be enabled for this repo.
        :param pulumi.Input[_builtins.str] github_app_enterprise_base_url: Specifies the GitHub API URL for GitHub app authentication.
        :param pulumi.Input[_builtins.str] github_app_id: Specifies the Github App ID of the app used to access the repo for GitHub app authentication.
        :param pulumi.Input[_builtins.str] github_app_installation_id: Specifies the ID of the installed GitHub App for GitHub app authentication.
        :param pulumi.Input[_builtins.str] github_app_private_key: github*app*private_key specifies the private key PEM data for authentication via GitHub app.
        :param pulumi.Input[_builtins.str] password: Password or PAT to be used for authenticating the remote repository.
        :param pulumi.Input[_builtins.str] ssh_private_key: SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        :param pulumi.Input[_builtins.str] tls_client_cert_data: Certificate in PEM format for authenticating at the repo server. This is used for mTLS.
        :param pulumi.Input[_builtins.str] tls_client_cert_key: Private key in PEM format for authenticating at the repo server. This is used for mTLS.
        :param pulumi.Input[_builtins.str] type: Type specifies the type of the repoCreds.Can be either 'git' or 'helm. 'git' is assumed if empty or absent
        :param pulumi.Input[_builtins.str] url: URL of the remote repository. Make sure you pass at least an org, this will not work if you just provide the host, for eg. "https://github.com"
        :param pulumi.Input[_builtins.str] username: Username to be used for authenticating the remote repository.
        """
        if enable_oci is not None:
            pulumi.set(__self__, "enable_oci", enable_oci)
        if github_app_enterprise_base_url is not None:
            pulumi.set(__self__, "github_app_enterprise_base_url", github_app_enterprise_base_url)
        if github_app_id is not None:
            pulumi.set(__self__, "github_app_id", github_app_id)
        if github_app_installation_id is not None:
            pulumi.set(__self__, "github_app_installation_id", github_app_installation_id)
        if github_app_private_key is not None:
            pulumi.set(__self__, "github_app_private_key", github_app_private_key)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if ssh_private_key is not None:
            pulumi.set(__self__, "ssh_private_key", ssh_private_key)
        if tls_client_cert_data is not None:
            pulumi.set(__self__, "tls_client_cert_data", tls_client_cert_data)
        if tls_client_cert_key is not None:
            pulumi.set(__self__, "tls_client_cert_key", tls_client_cert_key)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if url is not None:
            pulumi.set(__self__, "url", url)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="enableOci")
    def enable_oci(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Specifies whether helm-oci support should be enabled for this repo.
        """
        return pulumi.get(self, "enable_oci")

    @enable_oci.setter
    def enable_oci(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "enable_oci", value)

    @_builtins.property
    @pulumi.getter(name="githubAppEnterpriseBaseUrl")
    def github_app_enterprise_base_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the GitHub API URL for GitHub app authentication.
        """
        return pulumi.get(self, "github_app_enterprise_base_url")

    @github_app_enterprise_base_url.setter
    def github_app_enterprise_base_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "github_app_enterprise_base_url", value)

    @_builtins.property
    @pulumi.getter(name="githubAppId")
    def github_app_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the Github App ID of the app used to access the repo for GitHub app authentication.
        """
        return pulumi.get(self, "github_app_id")

    @github_app_id.setter
    def github_app_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "github_app_id", value)

    @_builtins.property
    @pulumi.getter(name="githubAppInstallationId")
    def github_app_installation_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the ID of the installed GitHub App for GitHub app authentication.
        """
        return pulumi.get(self, "github_app_installation_id")

    @github_app_installation_id.setter
    def github_app_installation_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "github_app_installation_id", value)

    @_builtins.property
    @pulumi.getter(name="githubAppPrivateKey")
    def github_app_private_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        github*app*private_key specifies the private key PEM data for authentication via GitHub app.
        """
        return pulumi.get(self, "github_app_private_key")

    @github_app_private_key.setter
    def github_app_private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "github_app_private_key", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Password or PAT to be used for authenticating the remote repository.
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter(name="sshPrivateKey")
    def ssh_private_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        """
        return pulumi.get(self, "ssh_private_key")

    @ssh_private_key.setter
    def ssh_private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ssh_private_key", value)

    @_builtins.property
    @pulumi.getter(name="tlsClientCertData")
    def tls_client_cert_data(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Certificate in PEM format for authenticating at the repo server. This is used for mTLS.
        """
        return pulumi.get(self, "tls_client_cert_data")

    @tls_client_cert_data.setter
    def tls_client_cert_data(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tls_client_cert_data", value)

    @_builtins.property
    @pulumi.getter(name="tlsClientCertKey")
    def tls_client_cert_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Private key in PEM format for authenticating at the repo server. This is used for mTLS.
        """
        return pulumi.get(self, "tls_client_cert_key")

    @tls_client_cert_key.setter
    def tls_client_cert_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tls_client_cert_key", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Type specifies the type of the repoCreds.Can be either 'git' or 'helm. 'git' is assumed if empty or absent
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the remote repository. Make sure you pass at least an org, this will not work if you just provide the host, for eg. "https://github.com"
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "url", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to be used for authenticating the remote repository.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitOpsRepositoryEcrGenArgsDict(TypedDict):
        jwt_auth: NotRequired[pulumi.Input['GitOpsRepositoryEcrGenJwtAuthArgsDict']]
        """
        JWT authentication specific configuration.
        """
        region: NotRequired[pulumi.Input[_builtins.str]]
        """
        AWS region.
        """
        secret_ref: NotRequired[pulumi.Input['GitOpsRepositoryEcrGenSecretRefArgsDict']]
        """
        Secret reference to the AWS credentials.
        """
elif False:
    GitOpsRepositoryEcrGenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepositoryEcrGenArgs:
    def __init__(__self__, *,
                 jwt_auth: Optional[pulumi.Input['GitOpsRepositoryEcrGenJwtAuthArgs']] = None,
                 region: Optional[pulumi.Input[_builtins.str]] = None,
                 secret_ref: Optional[pulumi.Input['GitOpsRepositoryEcrGenSecretRefArgs']] = None):
        """
        :param pulumi.Input['GitOpsRepositoryEcrGenJwtAuthArgs'] jwt_auth: JWT authentication specific configuration.
        :param pulumi.Input[_builtins.str] region: AWS region.
        :param pulumi.Input['GitOpsRepositoryEcrGenSecretRefArgs'] secret_ref: Secret reference to the AWS credentials.
        """
        if jwt_auth is not None:
            pulumi.set(__self__, "jwt_auth", jwt_auth)
        if region is not None:
            pulumi.set(__self__, "region", region)
        if secret_ref is not None:
            pulumi.set(__self__, "secret_ref", secret_ref)

    @_builtins.property
    @pulumi.getter(name="jwtAuth")
    def jwt_auth(self) -> Optional[pulumi.Input['GitOpsRepositoryEcrGenJwtAuthArgs']]:
        """
        JWT authentication specific configuration.
        """
        return pulumi.get(self, "jwt_auth")

    @jwt_auth.setter
    def jwt_auth(self, value: Optional[pulumi.Input['GitOpsRepositoryEcrGenJwtAuthArgs']]):
        pulumi.set(self, "jwt_auth", value)

    @_builtins.property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        AWS region.
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "region", value)

    @_builtins.property
    @pulumi.getter(name="secretRef")
    def secret_ref(self) -> Optional[pulumi.Input['GitOpsRepositoryEcrGenSecretRefArgs']]:
        """
        Secret reference to the AWS credentials.
        """
        return pulumi.get(self, "secret_ref")

    @secret_ref.setter
    def secret_ref(self, value: Optional[pulumi.Input['GitOpsRepositoryEcrGenSecretRefArgs']]):
        pulumi.set(self, "secret_ref", value)


if not MYPY:
    class GitOpsRepositoryEcrGenJwtAuthArgsDict(TypedDict):
        audiences: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The name of the ServiceAccount resource being referred to.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.
        """
elif False:
    GitOpsRepositoryEcrGenJwtAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepositoryEcrGenJwtAuthArgs:
    def __init__(__self__, *,
                 audiences: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] audiences: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list
        :param pulumi.Input[_builtins.str] name: The name of the ServiceAccount resource being referred to.
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.
        """
        if audiences is not None:
            pulumi.set(__self__, "audiences", audiences)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def audiences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list
        """
        return pulumi.get(self, "audiences")

    @audiences.setter
    def audiences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "audiences", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The name of the ServiceAccount resource being referred to.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitOpsRepositoryEcrGenSecretRefArgsDict(TypedDict):
        aws_access_key_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        AWS access key id.
        """
        aws_secret_access_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        AWS secret access key.
        """
        aws_session_token: NotRequired[pulumi.Input[_builtins.str]]
        """
        AWS session token.
        """
elif False:
    GitOpsRepositoryEcrGenSecretRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepositoryEcrGenSecretRefArgs:
    def __init__(__self__, *,
                 aws_access_key_id: Optional[pulumi.Input[_builtins.str]] = None,
                 aws_secret_access_key: Optional[pulumi.Input[_builtins.str]] = None,
                 aws_session_token: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] aws_access_key_id: AWS access key id.
        :param pulumi.Input[_builtins.str] aws_secret_access_key: AWS secret access key.
        :param pulumi.Input[_builtins.str] aws_session_token: AWS session token.
        """
        if aws_access_key_id is not None:
            pulumi.set(__self__, "aws_access_key_id", aws_access_key_id)
        if aws_secret_access_key is not None:
            pulumi.set(__self__, "aws_secret_access_key", aws_secret_access_key)
        if aws_session_token is not None:
            pulumi.set(__self__, "aws_session_token", aws_session_token)

    @_builtins.property
    @pulumi.getter(name="awsAccessKeyId")
    def aws_access_key_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        AWS access key id.
        """
        return pulumi.get(self, "aws_access_key_id")

    @aws_access_key_id.setter
    def aws_access_key_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "aws_access_key_id", value)

    @_builtins.property
    @pulumi.getter(name="awsSecretAccessKey")
    def aws_secret_access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        AWS secret access key.
        """
        return pulumi.get(self, "aws_secret_access_key")

    @aws_secret_access_key.setter
    def aws_secret_access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "aws_secret_access_key", value)

    @_builtins.property
    @pulumi.getter(name="awsSessionToken")
    def aws_session_token(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        AWS session token.
        """
        return pulumi.get(self, "aws_session_token")

    @aws_session_token.setter
    def aws_session_token(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "aws_session_token", value)


if not MYPY:
    class GitOpsRepositoryGcrGenArgsDict(TypedDict):
        access_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        GCP access key.
        """
        project_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        GCP project id.
        """
        workload_identity: NotRequired[pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityArgsDict']]
        """
        GCP workload identity.
        """
elif False:
    GitOpsRepositoryGcrGenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepositoryGcrGenArgs:
    def __init__(__self__, *,
                 access_key: Optional[pulumi.Input[_builtins.str]] = None,
                 project_id: Optional[pulumi.Input[_builtins.str]] = None,
                 workload_identity: Optional[pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] access_key: GCP access key.
        :param pulumi.Input[_builtins.str] project_id: GCP project id.
        :param pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityArgs'] workload_identity: GCP workload identity.
        """
        if access_key is not None:
            pulumi.set(__self__, "access_key", access_key)
        if project_id is not None:
            pulumi.set(__self__, "project_id", project_id)
        if workload_identity is not None:
            pulumi.set(__self__, "workload_identity", workload_identity)

    @_builtins.property
    @pulumi.getter(name="accessKey")
    def access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        GCP access key.
        """
        return pulumi.get(self, "access_key")

    @access_key.setter
    def access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "access_key", value)

    @_builtins.property
    @pulumi.getter(name="projectId")
    def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        GCP project id.
        """
        return pulumi.get(self, "project_id")

    @project_id.setter
    def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project_id", value)

    @_builtins.property
    @pulumi.getter(name="workloadIdentity")
    def workload_identity(self) -> Optional[pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityArgs']]:
        """
        GCP workload identity.
        """
        return pulumi.get(self, "workload_identity")

    @workload_identity.setter
    def workload_identity(self, value: Optional[pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityArgs']]):
        pulumi.set(self, "workload_identity", value)


if not MYPY:
    class GitOpsRepositoryGcrGenWorkloadIdentityArgsDict(TypedDict):
        cluster_location: NotRequired[pulumi.Input[_builtins.str]]
        """
        Cluster location.
        """
        cluster_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Cluster name.
        """
        cluster_project_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Cluster project id.
        """
        service_account_ref: NotRequired[pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgsDict']]
        """
        Service account reference.
        """
elif False:
    GitOpsRepositoryGcrGenWorkloadIdentityArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepositoryGcrGenWorkloadIdentityArgs:
    def __init__(__self__, *,
                 cluster_location: Optional[pulumi.Input[_builtins.str]] = None,
                 cluster_name: Optional[pulumi.Input[_builtins.str]] = None,
                 cluster_project_id: Optional[pulumi.Input[_builtins.str]] = None,
                 service_account_ref: Optional[pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] cluster_location: Cluster location.
        :param pulumi.Input[_builtins.str] cluster_name: Cluster name.
        :param pulumi.Input[_builtins.str] cluster_project_id: Cluster project id.
        :param pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgs'] service_account_ref: Service account reference.
        """
        if cluster_location is not None:
            pulumi.set(__self__, "cluster_location", cluster_location)
        if cluster_name is not None:
            pulumi.set(__self__, "cluster_name", cluster_name)
        if cluster_project_id is not None:
            pulumi.set(__self__, "cluster_project_id", cluster_project_id)
        if service_account_ref is not None:
            pulumi.set(__self__, "service_account_ref", service_account_ref)

    @_builtins.property
    @pulumi.getter(name="clusterLocation")
    def cluster_location(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Cluster location.
        """
        return pulumi.get(self, "cluster_location")

    @cluster_location.setter
    def cluster_location(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cluster_location", value)

    @_builtins.property
    @pulumi.getter(name="clusterName")
    def cluster_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Cluster name.
        """
        return pulumi.get(self, "cluster_name")

    @cluster_name.setter
    def cluster_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cluster_name", value)

    @_builtins.property
    @pulumi.getter(name="clusterProjectId")
    def cluster_project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Cluster project id.
        """
        return pulumi.get(self, "cluster_project_id")

    @cluster_project_id.setter
    def cluster_project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cluster_project_id", value)

    @_builtins.property
    @pulumi.getter(name="serviceAccountRef")
    def service_account_ref(self) -> Optional[pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgs']]:
        """
        Service account reference.
        """
        return pulumi.get(self, "service_account_ref")

    @service_account_ref.setter
    def service_account_ref(self, value: Optional[pulumi.Input['GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgs']]):
        pulumi.set(self, "service_account_ref", value)


if not MYPY:
    class GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgsDict(TypedDict):
        audiences: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The name of the ServiceAccount resource being referred to.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.
        """
elif False:
    GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepositoryGcrGenWorkloadIdentityServiceAccountRefArgs:
    def __init__(__self__, *,
                 audiences: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] audiences: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list
        :param pulumi.Input[_builtins.str] name: The name of the ServiceAccount resource being referred to.
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.
        """
        if audiences is not None:
            pulumi.set(__self__, "audiences", audiences)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def audiences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list
        """
        return pulumi.get(self, "audiences")

    @audiences.setter
    def audiences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "audiences", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The name of the ServiceAccount resource being referred to.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitOpsRepositoryRepoArgsDict(TypedDict):
        connection_type: pulumi.Input[_builtins.str]
        """
        Identifies the authentication method used to connect to the repository. Possible values: "HTTPS" "SSH" "GITHUB" "HTTPS*ANONYMOUS", "GITHUB*ENTERPRISE".
        """
        repo: pulumi.Input[_builtins.str]
        """
        URL to the remote repository.
        """
        enable_lfs: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if git-lfs support must be enabled for this repo. This is valid only for Git repositories.
        """
        enable_oci: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if helm-oci support must be enabled for this repo.
        """
        github_app_enterprise_base_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        Base URL of GitHub Enterprise installation. If left empty, this defaults to https://api.github.com.
        """
        github_app_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Id of the GitHub app used to access the repo.
        """
        github_app_installation_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Installation id of the GitHub app used to access the repo.
        """
        github_app_private_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        GitHub app private key PEM data.
        """
        inherited_creds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if the credentials were inherited from a repository credential.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if the connection to the repository ignores any errors when verifying TLS certificates or SSH host keys.
        """
        insecure_ignore_host_key: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if InsecureIgnoreHostKey should be used. Insecure is favored used only for git repos. Deprecated.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name to be used for this repo. Only used with Helm repos.
        """
        password: NotRequired[pulumi.Input[_builtins.str]]
        """
        Password or PAT to be used for authenticating the remote repository.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The ArgoCD project name corresponding to this GitOps repository. An empty string means that the GitOps repository belongs to the default project created by Harness.
        """
        proxy: NotRequired[pulumi.Input[_builtins.str]]
        """
        The HTTP/HTTPS proxy used to access the repo.
        """
        ssh_private_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        """
        tls_client_cert_data: NotRequired[pulumi.Input[_builtins.str]]
        """
        Certificate in PEM format for authenticating at the repo server. This is used for mTLS. The value should be base64 encoded.
        """
        tls_client_cert_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        Private key in PEM format for authenticating at the repo server. This is used for mTLS. The value should be base64 encoded.
        """
        type_: NotRequired[pulumi.Input[_builtins.str]]
        """
        Type specifies the type of the repo. Can be either "git" or "helm. "git" is assumed if empty or absent.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to be used for authenticating the remote repository.
        """
elif False:
    GitOpsRepositoryRepoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepositoryRepoArgs:
    def __init__(__self__, *,
                 connection_type: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 enable_lfs: Optional[pulumi.Input[_builtins.bool]] = None,
                 enable_oci: Optional[pulumi.Input[_builtins.bool]] = None,
                 github_app_enterprise_base_url: Optional[pulumi.Input[_builtins.str]] = None,
                 github_app_id: Optional[pulumi.Input[_builtins.str]] = None,
                 github_app_installation_id: Optional[pulumi.Input[_builtins.str]] = None,
                 github_app_private_key: Optional[pulumi.Input[_builtins.str]] = None,
                 inherited_creds: Optional[pulumi.Input[_builtins.bool]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 insecure_ignore_host_key: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 password: Optional[pulumi.Input[_builtins.str]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 proxy: Optional[pulumi.Input[_builtins.str]] = None,
                 ssh_private_key: Optional[pulumi.Input[_builtins.str]] = None,
                 tls_client_cert_data: Optional[pulumi.Input[_builtins.str]] = None,
                 tls_client_cert_key: Optional[pulumi.Input[_builtins.str]] = None,
                 type_: Optional[pulumi.Input[_builtins.str]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] connection_type: Identifies the authentication method used to connect to the repository. Possible values: "HTTPS" "SSH" "GITHUB" "HTTPS*ANONYMOUS", "GITHUB*ENTERPRISE".
        :param pulumi.Input[_builtins.str] repo: URL to the remote repository.
        :param pulumi.Input[_builtins.bool] enable_lfs: Indicates if git-lfs support must be enabled for this repo. This is valid only for Git repositories.
        :param pulumi.Input[_builtins.bool] enable_oci: Indicates if helm-oci support must be enabled for this repo.
        :param pulumi.Input[_builtins.str] github_app_enterprise_base_url: Base URL of GitHub Enterprise installation. If left empty, this defaults to https://api.github.com.
        :param pulumi.Input[_builtins.str] github_app_id: Id of the GitHub app used to access the repo.
        :param pulumi.Input[_builtins.str] github_app_installation_id: Installation id of the GitHub app used to access the repo.
        :param pulumi.Input[_builtins.str] github_app_private_key: GitHub app private key PEM data.
        :param pulumi.Input[_builtins.bool] inherited_creds: Indicates if the credentials were inherited from a repository credential.
        :param pulumi.Input[_builtins.bool] insecure: Indicates if the connection to the repository ignores any errors when verifying TLS certificates or SSH host keys.
        :param pulumi.Input[_builtins.bool] insecure_ignore_host_key: Indicates if InsecureIgnoreHostKey should be used. Insecure is favored used only for git repos. Deprecated.
        :param pulumi.Input[_builtins.str] name: Name to be used for this repo. Only used with Helm repos.
        :param pulumi.Input[_builtins.str] password: Password or PAT to be used for authenticating the remote repository.
        :param pulumi.Input[_builtins.str] project: The ArgoCD project name corresponding to this GitOps repository. An empty string means that the GitOps repository belongs to the default project created by Harness.
        :param pulumi.Input[_builtins.str] proxy: The HTTP/HTTPS proxy used to access the repo.
        :param pulumi.Input[_builtins.str] ssh_private_key: SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        :param pulumi.Input[_builtins.str] tls_client_cert_data: Certificate in PEM format for authenticating at the repo server. This is used for mTLS. The value should be base64 encoded.
        :param pulumi.Input[_builtins.str] tls_client_cert_key: Private key in PEM format for authenticating at the repo server. This is used for mTLS. The value should be base64 encoded.
        :param pulumi.Input[_builtins.str] type_: Type specifies the type of the repo. Can be either "git" or "helm. "git" is assumed if empty or absent.
        :param pulumi.Input[_builtins.str] username: Username to be used for authenticating the remote repository.
        """
        pulumi.set(__self__, "connection_type", connection_type)
        pulumi.set(__self__, "repo", repo)
        if enable_lfs is not None:
            pulumi.set(__self__, "enable_lfs", enable_lfs)
        if enable_oci is not None:
            pulumi.set(__self__, "enable_oci", enable_oci)
        if github_app_enterprise_base_url is not None:
            pulumi.set(__self__, "github_app_enterprise_base_url", github_app_enterprise_base_url)
        if github_app_id is not None:
            pulumi.set(__self__, "github_app_id", github_app_id)
        if github_app_installation_id is not None:
            pulumi.set(__self__, "github_app_installation_id", github_app_installation_id)
        if github_app_private_key is not None:
            pulumi.set(__self__, "github_app_private_key", github_app_private_key)
        if inherited_creds is not None:
            pulumi.set(__self__, "inherited_creds", inherited_creds)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if insecure_ignore_host_key is not None:
            pulumi.set(__self__, "insecure_ignore_host_key", insecure_ignore_host_key)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if proxy is not None:
            pulumi.set(__self__, "proxy", proxy)
        if ssh_private_key is not None:
            pulumi.set(__self__, "ssh_private_key", ssh_private_key)
        if tls_client_cert_data is not None:
            pulumi.set(__self__, "tls_client_cert_data", tls_client_cert_data)
        if tls_client_cert_key is not None:
            pulumi.set(__self__, "tls_client_cert_key", tls_client_cert_key)
        if type_ is not None:
            pulumi.set(__self__, "type_", type_)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="connectionType")
    def connection_type(self) -> pulumi.Input[_builtins.str]:
        """
        Identifies the authentication method used to connect to the repository. Possible values: "HTTPS" "SSH" "GITHUB" "HTTPS*ANONYMOUS", "GITHUB*ENTERPRISE".
        """
        return pulumi.get(self, "connection_type")

    @connection_type.setter
    def connection_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "connection_type", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the remote repository.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter(name="enableLfs")
    def enable_lfs(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if git-lfs support must be enabled for this repo. This is valid only for Git repositories.
        """
        return pulumi.get(self, "enable_lfs")

    @enable_lfs.setter
    def enable_lfs(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "enable_lfs", value)

    @_builtins.property
    @pulumi.getter(name="enableOci")
    def enable_oci(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if helm-oci support must be enabled for this repo.
        """
        return pulumi.get(self, "enable_oci")

    @enable_oci.setter
    def enable_oci(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "enable_oci", value)

    @_builtins.property
    @pulumi.getter(name="githubAppEnterpriseBaseUrl")
    def github_app_enterprise_base_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Base URL of GitHub Enterprise installation. If left empty, this defaults to https://api.github.com.
        """
        return pulumi.get(self, "github_app_enterprise_base_url")

    @github_app_enterprise_base_url.setter
    def github_app_enterprise_base_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "github_app_enterprise_base_url", value)

    @_builtins.property
    @pulumi.getter(name="githubAppId")
    def github_app_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Id of the GitHub app used to access the repo.
        """
        return pulumi.get(self, "github_app_id")

    @github_app_id.setter
    def github_app_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "github_app_id", value)

    @_builtins.property
    @pulumi.getter(name="githubAppInstallationId")
    def github_app_installation_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Installation id of the GitHub app used to access the repo.
        """
        return pulumi.get(self, "github_app_installation_id")

    @github_app_installation_id.setter
    def github_app_installation_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "github_app_installation_id", value)

    @_builtins.property
    @pulumi.getter(name="githubAppPrivateKey")
    def github_app_private_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        GitHub app private key PEM data.
        """
        return pulumi.get(self, "github_app_private_key")

    @github_app_private_key.setter
    def github_app_private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "github_app_private_key", value)

    @_builtins.property
    @pulumi.getter(name="inheritedCreds")
    def inherited_creds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if the credentials were inherited from a repository credential.
        """
        return pulumi.get(self, "inherited_creds")

    @inherited_creds.setter
    def inherited_creds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "inherited_creds", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if the connection to the repository ignores any errors when verifying TLS certificates or SSH host keys.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="insecureIgnoreHostKey")
    def insecure_ignore_host_key(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if InsecureIgnoreHostKey should be used. Insecure is favored used only for git repos. Deprecated.
        """
        return pulumi.get(self, "insecure_ignore_host_key")

    @insecure_ignore_host_key.setter
    def insecure_ignore_host_key(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure_ignore_host_key", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name to be used for this repo. Only used with Helm repos.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Password or PAT to be used for authenticating the remote repository.
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The ArgoCD project name corresponding to this GitOps repository. An empty string means that the GitOps repository belongs to the default project created by Harness.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def proxy(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The HTTP/HTTPS proxy used to access the repo.
        """
        return pulumi.get(self, "proxy")

    @proxy.setter
    def proxy(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "proxy", value)

    @_builtins.property
    @pulumi.getter(name="sshPrivateKey")
    def ssh_private_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        """
        return pulumi.get(self, "ssh_private_key")

    @ssh_private_key.setter
    def ssh_private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ssh_private_key", value)

    @_builtins.property
    @pulumi.getter(name="tlsClientCertData")
    def tls_client_cert_data(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Certificate in PEM format for authenticating at the repo server. This is used for mTLS. The value should be base64 encoded.
        """
        return pulumi.get(self, "tls_client_cert_data")

    @tls_client_cert_data.setter
    def tls_client_cert_data(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tls_client_cert_data", value)

    @_builtins.property
    @pulumi.getter(name="tlsClientCertKey")
    def tls_client_cert_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Private key in PEM format for authenticating at the repo server. This is used for mTLS. The value should be base64 encoded.
        """
        return pulumi.get(self, "tls_client_cert_key")

    @tls_client_cert_key.setter
    def tls_client_cert_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tls_client_cert_key", value)

    @_builtins.property
    @pulumi.getter
    def type_(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Type specifies the type of the repo. Can be either "git" or "helm. "git" is assumed if empty or absent.
        """
        return pulumi.get(self, "type_")

    @type_.setter
    def type_(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type_", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to be used for authenticating the remote repository.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitOpsRepositoryUpdateMaskArgsDict(TypedDict):
        paths: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        The set of field mask paths.
        """
elif False:
    GitOpsRepositoryUpdateMaskArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitOpsRepositoryUpdateMaskArgs:
    def __init__(__self__, *,
                 paths: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths: The set of field mask paths.
        """
        if paths is not None:
            pulumi.set(__self__, "paths", paths)

    @_builtins.property
    @pulumi.getter
    def paths(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        The set of field mask paths.
        """
        return pulumi.get(self, "paths")

    @paths.setter
    def paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths", value)


if not MYPY:
    class GithubConnectorApiAuthenticationArgsDict(TypedDict):
        github_app: NotRequired[pulumi.Input['GithubConnectorApiAuthenticationGithubAppArgsDict']]
        """
        Configuration for using the github app for interacting with the github api.
        """
        token_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Personal access token for interacting with the github 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}.
        """
elif False:
    GithubConnectorApiAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GithubConnectorApiAuthenticationArgs:
    def __init__(__self__, *,
                 github_app: Optional[pulumi.Input['GithubConnectorApiAuthenticationGithubAppArgs']] = None,
                 token_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GithubConnectorApiAuthenticationGithubAppArgs'] github_app: Configuration for using the github app for interacting with the github api.
        :param pulumi.Input[_builtins.str] token_ref: Personal access token for interacting with the github 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}.
        """
        if github_app is not None:
            pulumi.set(__self__, "github_app", github_app)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter(name="githubApp")
    def github_app(self) -> Optional[pulumi.Input['GithubConnectorApiAuthenticationGithubAppArgs']]:
        """
        Configuration for using the github app for interacting with the github api.
        """
        return pulumi.get(self, "github_app")

    @github_app.setter
    def github_app(self, value: Optional[pulumi.Input['GithubConnectorApiAuthenticationGithubAppArgs']]):
        pulumi.set(self, "github_app", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Personal access token for interacting with the github 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GithubConnectorApiAuthenticationGithubAppArgsDict(TypedDict):
        private_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the private 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}.
        """
        application_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enter the GitHub App ID from the GitHub App General tab.
        """
        application_id_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing application id 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}.
        """
        installation_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enter the Installation ID located in the URL of the installed GitHub App.
        """
        installation_id_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing installation id. 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}.
        """
elif False:
    GithubConnectorApiAuthenticationGithubAppArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GithubConnectorApiAuthenticationGithubAppArgs:
    def __init__(__self__, *,
                 private_key_ref: pulumi.Input[_builtins.str],
                 application_id: Optional[pulumi.Input[_builtins.str]] = None,
                 application_id_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 installation_id: Optional[pulumi.Input[_builtins.str]] = None,
                 installation_id_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] private_key_ref: Reference to the secret containing the private 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}.
        :param pulumi.Input[_builtins.str] application_id: Enter the GitHub App ID from the GitHub App General tab.
        :param pulumi.Input[_builtins.str] application_id_ref: Reference to the secret containing application id 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}.
        :param pulumi.Input[_builtins.str] installation_id: Enter the Installation ID located in the URL of the installed GitHub App.
        :param pulumi.Input[_builtins.str] installation_id_ref: Reference to the secret containing installation id. 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}.
        """
        pulumi.set(__self__, "private_key_ref", private_key_ref)
        if application_id is not None:
            pulumi.set(__self__, "application_id", application_id)
        if application_id_ref is not None:
            pulumi.set(__self__, "application_id_ref", application_id_ref)
        if installation_id is not None:
            pulumi.set(__self__, "installation_id", installation_id)
        if installation_id_ref is not None:
            pulumi.set(__self__, "installation_id_ref", installation_id_ref)

    @_builtins.property
    @pulumi.getter(name="privateKeyRef")
    def private_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the private 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}.
        """
        return pulumi.get(self, "private_key_ref")

    @private_key_ref.setter
    def private_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "private_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="applicationId")
    def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enter the GitHub App ID from the GitHub App General tab.
        """
        return pulumi.get(self, "application_id")

    @application_id.setter
    def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "application_id", value)

    @_builtins.property
    @pulumi.getter(name="applicationIdRef")
    def application_id_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing application id 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}.
        """
        return pulumi.get(self, "application_id_ref")

    @application_id_ref.setter
    def application_id_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "application_id_ref", value)

    @_builtins.property
    @pulumi.getter(name="installationId")
    def installation_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enter the Installation ID located in the URL of the installed GitHub App.
        """
        return pulumi.get(self, "installation_id")

    @installation_id.setter
    def installation_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "installation_id", value)

    @_builtins.property
    @pulumi.getter(name="installationIdRef")
    def installation_id_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing installation id. 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}.
        """
        return pulumi.get(self, "installation_id_ref")

    @installation_id_ref.setter
    def installation_id_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "installation_id_ref", value)


if not MYPY:
    class GithubConnectorCredentialsArgsDict(TypedDict):
        http: NotRequired[pulumi.Input['GithubConnectorCredentialsHttpArgsDict']]
        """
        Authenticate using Username and password over http(s) for the connection.
        """
        ssh: NotRequired[pulumi.Input['GithubConnectorCredentialsSshArgsDict']]
        """
        Authenticate using SSH for the connection.
        """
elif False:
    GithubConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GithubConnectorCredentialsArgs:
    def __init__(__self__, *,
                 http: Optional[pulumi.Input['GithubConnectorCredentialsHttpArgs']] = None,
                 ssh: Optional[pulumi.Input['GithubConnectorCredentialsSshArgs']] = None):
        """
        :param pulumi.Input['GithubConnectorCredentialsHttpArgs'] http: Authenticate using Username and password over http(s) for the connection.
        :param pulumi.Input['GithubConnectorCredentialsSshArgs'] ssh: Authenticate using SSH for the connection.
        """
        if http is not None:
            pulumi.set(__self__, "http", http)
        if ssh is not None:
            pulumi.set(__self__, "ssh", ssh)

    @_builtins.property
    @pulumi.getter
    def http(self) -> Optional[pulumi.Input['GithubConnectorCredentialsHttpArgs']]:
        """
        Authenticate using Username and password over http(s) for the connection.
        """
        return pulumi.get(self, "http")

    @http.setter
    def http(self, value: Optional[pulumi.Input['GithubConnectorCredentialsHttpArgs']]):
        pulumi.set(self, "http", value)

    @_builtins.property
    @pulumi.getter
    def ssh(self) -> Optional[pulumi.Input['GithubConnectorCredentialsSshArgs']]:
        """
        Authenticate using SSH for the connection.
        """
        return pulumi.get(self, "ssh")

    @ssh.setter
    def ssh(self, value: Optional[pulumi.Input['GithubConnectorCredentialsSshArgs']]):
        pulumi.set(self, "ssh", value)


if not MYPY:
    class GithubConnectorCredentialsHttpArgsDict(TypedDict):
        anonymouses: NotRequired[pulumi.Input[Sequence[pulumi.Input['GithubConnectorCredentialsHttpAnonymouseArgsDict']]]]
        """
        Configuration for using the github http anonymous for interacting with the github api.
        """
        github_app: NotRequired[pulumi.Input['GithubConnectorCredentialsHttpGithubAppArgsDict']]
        """
        Configuration for using the github app for interacting with the github api.
        """
        token_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a secret containing the personal access 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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    GithubConnectorCredentialsHttpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GithubConnectorCredentialsHttpArgs:
    def __init__(__self__, *,
                 anonymouses: Optional[pulumi.Input[Sequence[pulumi.Input['GithubConnectorCredentialsHttpAnonymouseArgs']]]] = None,
                 github_app: Optional[pulumi.Input['GithubConnectorCredentialsHttpGithubAppArgs']] = None,
                 token_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GithubConnectorCredentialsHttpAnonymouseArgs']]] anonymouses: Configuration for using the github http anonymous for interacting with the github api.
        :param pulumi.Input['GithubConnectorCredentialsHttpGithubAppArgs'] github_app: Configuration for using the github app for interacting with the github api.
        :param pulumi.Input[_builtins.str] token_ref: Reference to a secret containing the personal access 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        if anonymouses is not None:
            pulumi.set(__self__, "anonymouses", anonymouses)
        if github_app is not None:
            pulumi.set(__self__, "github_app", github_app)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter
    def anonymouses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GithubConnectorCredentialsHttpAnonymouseArgs']]]]:
        """
        Configuration for using the github http anonymous for interacting with the github api.
        """
        return pulumi.get(self, "anonymouses")

    @anonymouses.setter
    def anonymouses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GithubConnectorCredentialsHttpAnonymouseArgs']]]]):
        pulumi.set(self, "anonymouses", value)

    @_builtins.property
    @pulumi.getter(name="githubApp")
    def github_app(self) -> Optional[pulumi.Input['GithubConnectorCredentialsHttpGithubAppArgs']]:
        """
        Configuration for using the github app for interacting with the github api.
        """
        return pulumi.get(self, "github_app")

    @github_app.setter
    def github_app(self, value: Optional[pulumi.Input['GithubConnectorCredentialsHttpGithubAppArgs']]):
        pulumi.set(self, "github_app", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a secret containing the personal access 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "token_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class GithubConnectorCredentialsHttpAnonymouseArgsDict(TypedDict):
        pass
elif False:
    GithubConnectorCredentialsHttpAnonymouseArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GithubConnectorCredentialsHttpAnonymouseArgs:
    def __init__(__self__):
        pass


if not MYPY:
    class GithubConnectorCredentialsHttpGithubAppArgsDict(TypedDict):
        private_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the private 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}.
        """
        application_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enter the GitHub App ID from the GitHub App General tab.
        """
        application_id_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing application id 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}.
        """
        installation_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enter the Installation ID located in the URL of the installed GitHub App.
        """
        installation_id_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing installation id. 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}.
        """
elif False:
    GithubConnectorCredentialsHttpGithubAppArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GithubConnectorCredentialsHttpGithubAppArgs:
    def __init__(__self__, *,
                 private_key_ref: pulumi.Input[_builtins.str],
                 application_id: Optional[pulumi.Input[_builtins.str]] = None,
                 application_id_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 installation_id: Optional[pulumi.Input[_builtins.str]] = None,
                 installation_id_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] private_key_ref: Reference to the secret containing the private 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}.
        :param pulumi.Input[_builtins.str] application_id: Enter the GitHub App ID from the GitHub App General tab.
        :param pulumi.Input[_builtins.str] application_id_ref: Reference to the secret containing application id 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}.
        :param pulumi.Input[_builtins.str] installation_id: Enter the Installation ID located in the URL of the installed GitHub App.
        :param pulumi.Input[_builtins.str] installation_id_ref: Reference to the secret containing installation id. 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}.
        """
        pulumi.set(__self__, "private_key_ref", private_key_ref)
        if application_id is not None:
            pulumi.set(__self__, "application_id", application_id)
        if application_id_ref is not None:
            pulumi.set(__self__, "application_id_ref", application_id_ref)
        if installation_id is not None:
            pulumi.set(__self__, "installation_id", installation_id)
        if installation_id_ref is not None:
            pulumi.set(__self__, "installation_id_ref", installation_id_ref)

    @_builtins.property
    @pulumi.getter(name="privateKeyRef")
    def private_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the private 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}.
        """
        return pulumi.get(self, "private_key_ref")

    @private_key_ref.setter
    def private_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "private_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="applicationId")
    def application_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enter the GitHub App ID from the GitHub App General tab.
        """
        return pulumi.get(self, "application_id")

    @application_id.setter
    def application_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "application_id", value)

    @_builtins.property
    @pulumi.getter(name="applicationIdRef")
    def application_id_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing application id 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}.
        """
        return pulumi.get(self, "application_id_ref")

    @application_id_ref.setter
    def application_id_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "application_id_ref", value)

    @_builtins.property
    @pulumi.getter(name="installationId")
    def installation_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enter the Installation ID located in the URL of the installed GitHub App.
        """
        return pulumi.get(self, "installation_id")

    @installation_id.setter
    def installation_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "installation_id", value)

    @_builtins.property
    @pulumi.getter(name="installationIdRef")
    def installation_id_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing installation id. 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}.
        """
        return pulumi.get(self, "installation_id_ref")

    @installation_id_ref.setter
    def installation_id_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "installation_id_ref", value)


if not MYPY:
    class GithubConnectorCredentialsSshArgsDict(TypedDict):
        ssh_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to the Harness secret containing the ssh 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}.
        """
elif False:
    GithubConnectorCredentialsSshArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GithubConnectorCredentialsSshArgs:
    def __init__(__self__, *,
                 ssh_key_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] ssh_key_ref: Reference to the Harness secret containing the ssh 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}.
        """
        pulumi.set(__self__, "ssh_key_ref", ssh_key_ref)

    @_builtins.property
    @pulumi.getter(name="sshKeyRef")
    def ssh_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the Harness secret containing the ssh 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}.
        """
        return pulumi.get(self, "ssh_key_ref")

    @ssh_key_ref.setter
    def ssh_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "ssh_key_ref", value)


if not MYPY:
    class GitlabConnectorApiAuthenticationArgsDict(TypedDict):
        token_ref: pulumi.Input[_builtins.str]
        """
        Personal access token for interacting with the gitlab 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}.
        """
elif False:
    GitlabConnectorApiAuthenticationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitlabConnectorApiAuthenticationArgs:
    def __init__(__self__, *,
                 token_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] token_ref: Personal access token for interacting with the gitlab 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}.
        """
        pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Personal access token for interacting with the gitlab 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitlabConnectorCredentialsArgsDict(TypedDict):
        http: NotRequired[pulumi.Input['GitlabConnectorCredentialsHttpArgsDict']]
        """
        Authenticate using Username and password over http(s) for the connection.
        """
        ssh: NotRequired[pulumi.Input['GitlabConnectorCredentialsSshArgsDict']]
        """
        Authenticate using SSH for the connection.
        """
elif False:
    GitlabConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitlabConnectorCredentialsArgs:
    def __init__(__self__, *,
                 http: Optional[pulumi.Input['GitlabConnectorCredentialsHttpArgs']] = None,
                 ssh: Optional[pulumi.Input['GitlabConnectorCredentialsSshArgs']] = None):
        """
        :param pulumi.Input['GitlabConnectorCredentialsHttpArgs'] http: Authenticate using Username and password over http(s) for the connection.
        :param pulumi.Input['GitlabConnectorCredentialsSshArgs'] ssh: Authenticate using SSH for the connection.
        """
        if http is not None:
            pulumi.set(__self__, "http", http)
        if ssh is not None:
            pulumi.set(__self__, "ssh", ssh)

    @_builtins.property
    @pulumi.getter
    def http(self) -> Optional[pulumi.Input['GitlabConnectorCredentialsHttpArgs']]:
        """
        Authenticate using Username and password over http(s) for the connection.
        """
        return pulumi.get(self, "http")

    @http.setter
    def http(self, value: Optional[pulumi.Input['GitlabConnectorCredentialsHttpArgs']]):
        pulumi.set(self, "http", value)

    @_builtins.property
    @pulumi.getter
    def ssh(self) -> Optional[pulumi.Input['GitlabConnectorCredentialsSshArgs']]:
        """
        Authenticate using SSH for the connection.
        """
        return pulumi.get(self, "ssh")

    @ssh.setter
    def ssh(self, value: Optional[pulumi.Input['GitlabConnectorCredentialsSshArgs']]):
        pulumi.set(self, "ssh", value)


if not MYPY:
    class GitlabConnectorCredentialsHttpArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
        token_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a secret containing the personal access 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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    GitlabConnectorCredentialsHttpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitlabConnectorCredentialsHttpArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] token_ref: Reference to a secret containing the personal access 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a secret containing the personal access 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "token_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class GitlabConnectorCredentialsSshArgsDict(TypedDict):
        ssh_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to the Harness secret containing the ssh 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}.
        """
elif False:
    GitlabConnectorCredentialsSshArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitlabConnectorCredentialsSshArgs:
    def __init__(__self__, *,
                 ssh_key_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] ssh_key_ref: Reference to the Harness secret containing the ssh 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}.
        """
        pulumi.set(__self__, "ssh_key_ref", ssh_key_ref)

    @_builtins.property
    @pulumi.getter(name="sshKeyRef")
    def ssh_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the Harness secret containing the ssh 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}.
        """
        return pulumi.get(self, "ssh_key_ref")

    @ssh_key_ref.setter
    def ssh_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "ssh_key_ref", value)


if not MYPY:
    class GitopsAppProjectProjectArgsDict(TypedDict):
        metadatas: pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataArgsDict']]]
        """
        K8s object metadata for the Argo project.
        """
        specs: pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecArgsDict']]]
        """
        Specification details for the Argo project.
        """
elif False:
    GitopsAppProjectProjectArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectArgs:
    def __init__(__self__, *,
                 metadatas: pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataArgs']]],
                 specs: pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecArgs']]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataArgs']]] metadatas: K8s object metadata for the Argo project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecArgs']]] specs: Specification details for the Argo project.
        """
        pulumi.set(__self__, "metadatas", metadatas)
        pulumi.set(__self__, "specs", specs)

    @_builtins.property
    @pulumi.getter
    def metadatas(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataArgs']]]:
        """
        K8s object metadata for the Argo project.
        """
        return pulumi.get(self, "metadatas")

    @metadatas.setter
    def metadatas(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataArgs']]]):
        pulumi.set(self, "metadatas", value)

    @_builtins.property
    @pulumi.getter
    def specs(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecArgs']]]:
        """
        Specification details for the Argo project.
        """
        return pulumi.get(self, "specs")

    @specs.setter
    def specs(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecArgs']]]):
        pulumi.set(self, "specs", value)


if not MYPY:
    class GitopsAppProjectProjectMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations associated with the GitOps project.
        """
        cluster_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the cluster associated with the GitOps project.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Finalizers associated with the GitOps project.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels associated with the GitOps project.
        """
        managed_fields: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataManagedFieldArgsDict']]]]
        """
        Managed fields associated with the GitOps project.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the GitOps project.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the GitOps project. This must be the same as the namespace where the agent is installed
        """
        resource_version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource Version for the GitOps project
        """
elif False:
    GitopsAppProjectProjectMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 cluster_name: Optional[pulumi.Input[_builtins.str]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 managed_fields: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataManagedFieldArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 resource_version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations associated with the GitOps project.
        :param pulumi.Input[_builtins.str] cluster_name: Name of the cluster associated with the GitOps project.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: Finalizers associated with the GitOps project.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels associated with the GitOps project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataManagedFieldArgs']]] managed_fields: Managed fields associated with the GitOps project.
        :param pulumi.Input[_builtins.str] name: Name of the GitOps project.
        :param pulumi.Input[_builtins.str] namespace: Namespace of the GitOps project. This must be the same as the namespace where the agent is installed
        :param pulumi.Input[_builtins.str] resource_version: Resource Version for the GitOps project
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if cluster_name is not None:
            pulumi.set(__self__, "cluster_name", cluster_name)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if managed_fields is not None:
            pulumi.set(__self__, "managed_fields", managed_fields)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if resource_version is not None:
            pulumi.set(__self__, "resource_version", resource_version)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations associated with the GitOps project.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter(name="clusterName")
    def cluster_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the cluster associated with the GitOps project.
        """
        return pulumi.get(self, "cluster_name")

    @cluster_name.setter
    def cluster_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "cluster_name", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Finalizers associated with the GitOps project.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels associated with the GitOps project.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="managedFields")
    def managed_fields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataManagedFieldArgs']]]]:
        """
        Managed fields associated with the GitOps project.
        """
        return pulumi.get(self, "managed_fields")

    @managed_fields.setter
    def managed_fields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectMetadataManagedFieldArgs']]]]):
        pulumi.set(self, "managed_fields", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the GitOps project.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the GitOps project. This must be the same as the namespace where the agent is installed
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter(name="resourceVersion")
    def resource_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource Version for the GitOps project
        """
        return pulumi.get(self, "resource_version")

    @resource_version.setter
    def resource_version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "resource_version", value)


if not MYPY:
    class GitopsAppProjectProjectMetadataManagedFieldArgsDict(TypedDict):
        api_version: NotRequired[pulumi.Input[_builtins.str]]
        """
        API version of the operation performed.
        """
        fields_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Type of the fields in the GitOps project.
        """
        fields_v1: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Raw fields associated with the GitOps project.
        """
        manager: NotRequired[pulumi.Input[_builtins.str]]
        """
        Manager responsible for the operation.
        """
        operation: NotRequired[pulumi.Input[_builtins.str]]
        """
        Operation type performed on the GitOps project.
        """
        subresource: NotRequired[pulumi.Input[_builtins.str]]
        """
        Subresource associated with the GitOps project.
        """
        time: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Timestamp of the operation.
        """
elif False:
    GitopsAppProjectProjectMetadataManagedFieldArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectMetadataManagedFieldArgs:
    def __init__(__self__, *,
                 api_version: Optional[pulumi.Input[_builtins.str]] = None,
                 fields_type: Optional[pulumi.Input[_builtins.str]] = None,
                 fields_v1: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 manager: Optional[pulumi.Input[_builtins.str]] = None,
                 operation: Optional[pulumi.Input[_builtins.str]] = None,
                 subresource: Optional[pulumi.Input[_builtins.str]] = None,
                 time: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] api_version: API version of the operation performed.
        :param pulumi.Input[_builtins.str] fields_type: Type of the fields in the GitOps project.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] fields_v1: Raw fields associated with the GitOps project.
        :param pulumi.Input[_builtins.str] manager: Manager responsible for the operation.
        :param pulumi.Input[_builtins.str] operation: Operation type performed on the GitOps project.
        :param pulumi.Input[_builtins.str] subresource: Subresource associated with the GitOps project.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] time: Timestamp of the operation.
        """
        if api_version is not None:
            pulumi.set(__self__, "api_version", api_version)
        if fields_type is not None:
            pulumi.set(__self__, "fields_type", fields_type)
        if fields_v1 is not None:
            pulumi.set(__self__, "fields_v1", fields_v1)
        if manager is not None:
            pulumi.set(__self__, "manager", manager)
        if operation is not None:
            pulumi.set(__self__, "operation", operation)
        if subresource is not None:
            pulumi.set(__self__, "subresource", subresource)
        if time is not None:
            pulumi.set(__self__, "time", time)

    @_builtins.property
    @pulumi.getter(name="apiVersion")
    def api_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        API version of the operation performed.
        """
        return pulumi.get(self, "api_version")

    @api_version.setter
    def api_version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api_version", value)

    @_builtins.property
    @pulumi.getter(name="fieldsType")
    def fields_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Type of the fields in the GitOps project.
        """
        return pulumi.get(self, "fields_type")

    @fields_type.setter
    def fields_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "fields_type", value)

    @_builtins.property
    @pulumi.getter(name="fieldsV1")
    def fields_v1(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Raw fields associated with the GitOps project.
        """
        return pulumi.get(self, "fields_v1")

    @fields_v1.setter
    def fields_v1(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "fields_v1", value)

    @_builtins.property
    @pulumi.getter
    def manager(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Manager responsible for the operation.
        """
        return pulumi.get(self, "manager")

    @manager.setter
    def manager(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "manager", value)

    @_builtins.property
    @pulumi.getter
    def operation(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Operation type performed on the GitOps project.
        """
        return pulumi.get(self, "operation")

    @operation.setter
    def operation(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operation", value)

    @_builtins.property
    @pulumi.getter
    def subresource(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Subresource associated with the GitOps project.
        """
        return pulumi.get(self, "subresource")

    @subresource.setter
    def subresource(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "subresource", value)

    @_builtins.property
    @pulumi.getter
    def time(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Timestamp of the operation.
        """
        return pulumi.get(self, "time")

    @time.setter
    def time(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "time", value)


if not MYPY:
    class GitopsAppProjectProjectSpecArgsDict(TypedDict):
        cluster_resource_blacklists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceBlacklistArgsDict']]]]
        """
        Cluster resource blacklist for the GitOps project.
        """
        cluster_resource_whitelists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceWhitelistArgsDict']]]]
        """
        Cluster resource whitelist for the Argo project.
        """
        description: NotRequired[pulumi.Input[_builtins.str]]
        """
        Description of the Argo project.
        """
        destinations: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecDestinationArgsDict']]]]
        """
        Allowed destinations for applications in this Argo project.
        """
        namespace_resource_blacklists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgsDict']]]]
        """
        Namespace resource blacklist for the Argo project.
        """
        namespace_resource_whitelists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgsDict']]]]
        """
        Namespace resource whitelist for the GitOps project.
        """
        orphaned_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceArgsDict']]]]
        """
        OrphanedResources specifies if agent should monitor orphaned resources of apps in this project
        """
        permit_only_project_scoped_clusters: NotRequired[pulumi.Input[_builtins.bool]]
        """
        This option determines whether destinations can only reference clusters which are argo project-scoped
        """
        roles: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleArgsDict']]]]
        """
        Roles associated with the Argo project.
        """
        signature_keys: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSignatureKeyArgsDict']]]]
        """
        Signature keys for the GitOps project.
        """
        source_namespaces: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Source namespaces defines the namespaces application resources are allowed to be created in.
        """
        source_repos: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Allowed Source repositories for the Argo project.
        """
        sync_windows: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSyncWindowArgsDict']]]]
        """
        Synchronization windows for the GitOps project.
        """
elif False:
    GitopsAppProjectProjectSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecArgs:
    def __init__(__self__, *,
                 cluster_resource_blacklists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceBlacklistArgs']]]] = None,
                 cluster_resource_whitelists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceWhitelistArgs']]]] = None,
                 description: Optional[pulumi.Input[_builtins.str]] = None,
                 destinations: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecDestinationArgs']]]] = None,
                 namespace_resource_blacklists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgs']]]] = None,
                 namespace_resource_whitelists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgs']]]] = None,
                 orphaned_resources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceArgs']]]] = None,
                 permit_only_project_scoped_clusters: Optional[pulumi.Input[_builtins.bool]] = None,
                 roles: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleArgs']]]] = None,
                 signature_keys: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSignatureKeyArgs']]]] = None,
                 source_namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 source_repos: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 sync_windows: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSyncWindowArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceBlacklistArgs']]] cluster_resource_blacklists: Cluster resource blacklist for the GitOps project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceWhitelistArgs']]] cluster_resource_whitelists: Cluster resource whitelist for the Argo project.
        :param pulumi.Input[_builtins.str] description: Description of the Argo project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecDestinationArgs']]] destinations: Allowed destinations for applications in this Argo project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgs']]] namespace_resource_blacklists: Namespace resource blacklist for the Argo project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgs']]] namespace_resource_whitelists: Namespace resource whitelist for the GitOps project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceArgs']]] orphaned_resources: OrphanedResources specifies if agent should monitor orphaned resources of apps in this project
        :param pulumi.Input[_builtins.bool] permit_only_project_scoped_clusters: This option determines whether destinations can only reference clusters which are argo project-scoped
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleArgs']]] roles: Roles associated with the Argo project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSignatureKeyArgs']]] signature_keys: Signature keys for the GitOps project.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] source_namespaces: Source namespaces defines the namespaces application resources are allowed to be created in.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] source_repos: Allowed Source repositories for the Argo project.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSyncWindowArgs']]] sync_windows: Synchronization windows for the GitOps project.
        """
        if cluster_resource_blacklists is not None:
            pulumi.set(__self__, "cluster_resource_blacklists", cluster_resource_blacklists)
        if cluster_resource_whitelists is not None:
            pulumi.set(__self__, "cluster_resource_whitelists", cluster_resource_whitelists)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if destinations is not None:
            pulumi.set(__self__, "destinations", destinations)
        if namespace_resource_blacklists is not None:
            pulumi.set(__self__, "namespace_resource_blacklists", namespace_resource_blacklists)
        if namespace_resource_whitelists is not None:
            pulumi.set(__self__, "namespace_resource_whitelists", namespace_resource_whitelists)
        if orphaned_resources is not None:
            pulumi.set(__self__, "orphaned_resources", orphaned_resources)
        if permit_only_project_scoped_clusters is not None:
            pulumi.set(__self__, "permit_only_project_scoped_clusters", permit_only_project_scoped_clusters)
        if roles is not None:
            pulumi.set(__self__, "roles", roles)
        if signature_keys is not None:
            pulumi.set(__self__, "signature_keys", signature_keys)
        if source_namespaces is not None:
            pulumi.set(__self__, "source_namespaces", source_namespaces)
        if source_repos is not None:
            pulumi.set(__self__, "source_repos", source_repos)
        if sync_windows is not None:
            pulumi.set(__self__, "sync_windows", sync_windows)

    @_builtins.property
    @pulumi.getter(name="clusterResourceBlacklists")
    def cluster_resource_blacklists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceBlacklistArgs']]]]:
        """
        Cluster resource blacklist for the GitOps project.
        """
        return pulumi.get(self, "cluster_resource_blacklists")

    @cluster_resource_blacklists.setter
    def cluster_resource_blacklists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceBlacklistArgs']]]]):
        pulumi.set(self, "cluster_resource_blacklists", value)

    @_builtins.property
    @pulumi.getter(name="clusterResourceWhitelists")
    def cluster_resource_whitelists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceWhitelistArgs']]]]:
        """
        Cluster resource whitelist for the Argo project.
        """
        return pulumi.get(self, "cluster_resource_whitelists")

    @cluster_resource_whitelists.setter
    def cluster_resource_whitelists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecClusterResourceWhitelistArgs']]]]):
        pulumi.set(self, "cluster_resource_whitelists", value)

    @_builtins.property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Description of the Argo project.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "description", value)

    @_builtins.property
    @pulumi.getter
    def destinations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecDestinationArgs']]]]:
        """
        Allowed destinations for applications in this Argo project.
        """
        return pulumi.get(self, "destinations")

    @destinations.setter
    def destinations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecDestinationArgs']]]]):
        pulumi.set(self, "destinations", value)

    @_builtins.property
    @pulumi.getter(name="namespaceResourceBlacklists")
    def namespace_resource_blacklists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgs']]]]:
        """
        Namespace resource blacklist for the Argo project.
        """
        return pulumi.get(self, "namespace_resource_blacklists")

    @namespace_resource_blacklists.setter
    def namespace_resource_blacklists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgs']]]]):
        pulumi.set(self, "namespace_resource_blacklists", value)

    @_builtins.property
    @pulumi.getter(name="namespaceResourceWhitelists")
    def namespace_resource_whitelists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgs']]]]:
        """
        Namespace resource whitelist for the GitOps project.
        """
        return pulumi.get(self, "namespace_resource_whitelists")

    @namespace_resource_whitelists.setter
    def namespace_resource_whitelists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgs']]]]):
        pulumi.set(self, "namespace_resource_whitelists", value)

    @_builtins.property
    @pulumi.getter(name="orphanedResources")
    def orphaned_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceArgs']]]]:
        """
        OrphanedResources specifies if agent should monitor orphaned resources of apps in this project
        """
        return pulumi.get(self, "orphaned_resources")

    @orphaned_resources.setter
    def orphaned_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceArgs']]]]):
        pulumi.set(self, "orphaned_resources", value)

    @_builtins.property
    @pulumi.getter(name="permitOnlyProjectScopedClusters")
    def permit_only_project_scoped_clusters(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        This option determines whether destinations can only reference clusters which are argo project-scoped
        """
        return pulumi.get(self, "permit_only_project_scoped_clusters")

    @permit_only_project_scoped_clusters.setter
    def permit_only_project_scoped_clusters(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "permit_only_project_scoped_clusters", value)

    @_builtins.property
    @pulumi.getter
    def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleArgs']]]]:
        """
        Roles associated with the Argo project.
        """
        return pulumi.get(self, "roles")

    @roles.setter
    def roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleArgs']]]]):
        pulumi.set(self, "roles", value)

    @_builtins.property
    @pulumi.getter(name="signatureKeys")
    def signature_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSignatureKeyArgs']]]]:
        """
        Signature keys for the GitOps project.
        """
        return pulumi.get(self, "signature_keys")

    @signature_keys.setter
    def signature_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSignatureKeyArgs']]]]):
        pulumi.set(self, "signature_keys", value)

    @_builtins.property
    @pulumi.getter(name="sourceNamespaces")
    def source_namespaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Source namespaces defines the namespaces application resources are allowed to be created in.
        """
        return pulumi.get(self, "source_namespaces")

    @source_namespaces.setter
    def source_namespaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "source_namespaces", value)

    @_builtins.property
    @pulumi.getter(name="sourceRepos")
    def source_repos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Allowed Source repositories for the Argo project.
        """
        return pulumi.get(self, "source_repos")

    @source_repos.setter
    def source_repos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "source_repos", value)

    @_builtins.property
    @pulumi.getter(name="syncWindows")
    def sync_windows(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSyncWindowArgs']]]]:
        """
        Synchronization windows for the GitOps project.
        """
        return pulumi.get(self, "sync_windows")

    @sync_windows.setter
    def sync_windows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecSyncWindowArgs']]]]):
        pulumi.set(self, "sync_windows", value)


if not MYPY:
    class GitopsAppProjectProjectSpecClusterResourceBlacklistArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        Group of the cluster resource blacklist.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        Kind of the cluster resource blacklist.
        """
elif False:
    GitopsAppProjectProjectSpecClusterResourceBlacklistArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecClusterResourceBlacklistArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: Group of the cluster resource blacklist.
        :param pulumi.Input[_builtins.str] kind: Kind of the cluster resource blacklist.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Group of the cluster resource blacklist.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Kind of the cluster resource blacklist.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)


if not MYPY:
    class GitopsAppProjectProjectSpecClusterResourceWhitelistArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        Group of the cluster resource whitelist.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        Kind of the cluster resource whitelist.
        """
elif False:
    GitopsAppProjectProjectSpecClusterResourceWhitelistArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecClusterResourceWhitelistArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: Group of the cluster resource whitelist.
        :param pulumi.Input[_builtins.str] kind: Kind of the cluster resource whitelist.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Group of the cluster resource whitelist.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Kind of the cluster resource whitelist.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)


if not MYPY:
    class GitopsAppProjectProjectSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the destination cluster.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Permitted Namespaces for deployment in the destination cluster.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        Server URL of the destination cluster.
        """
elif False:
    GitopsAppProjectProjectSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the destination cluster.
        :param pulumi.Input[_builtins.str] namespace: Permitted Namespaces for deployment in the destination cluster.
        :param pulumi.Input[_builtins.str] server: Server URL of the destination cluster.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the destination cluster.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Permitted Namespaces for deployment in the destination cluster.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Server URL of the destination cluster.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        Group of the namespace resource blacklist.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        Kind of the namespace resource blacklist.
        """
elif False:
    GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecNamespaceResourceBlacklistArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: Group of the namespace resource blacklist.
        :param pulumi.Input[_builtins.str] kind: Kind of the namespace resource blacklist.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Group of the namespace resource blacklist.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Kind of the namespace resource blacklist.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)


if not MYPY:
    class GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        Group of the namespace resource whitelist.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        Kind of the namespace resource whitelist.
        """
elif False:
    GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecNamespaceResourceWhitelistArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: Group of the namespace resource whitelist.
        :param pulumi.Input[_builtins.str] kind: Kind of the namespace resource whitelist.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Group of the namespace resource whitelist.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Kind of the namespace resource whitelist.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)


if not MYPY:
    class GitopsAppProjectProjectSpecOrphanedResourceArgsDict(TypedDict):
        ignores: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgsDict']]]]
        """
        List of ignored orphaned resources.
        """
        warn: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to warn about orphaned resources.
        """
elif False:
    GitopsAppProjectProjectSpecOrphanedResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecOrphanedResourceArgs:
    def __init__(__self__, *,
                 ignores: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgs']]]] = None,
                 warn: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgs']]] ignores: List of ignored orphaned resources.
        :param pulumi.Input[_builtins.bool] warn: Whether to warn about orphaned resources.
        """
        if ignores is not None:
            pulumi.set(__self__, "ignores", ignores)
        if warn is not None:
            pulumi.set(__self__, "warn", warn)

    @_builtins.property
    @pulumi.getter
    def ignores(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgs']]]]:
        """
        List of ignored orphaned resources.
        """
        return pulumi.get(self, "ignores")

    @ignores.setter
    def ignores(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgs']]]]):
        pulumi.set(self, "ignores", value)

    @_builtins.property
    @pulumi.getter
    def warn(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to warn about orphaned resources.
        """
        return pulumi.get(self, "warn")

    @warn.setter
    def warn(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "warn", value)


if not MYPY:
    class GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        Group of the ignored orphaned resource.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        Kind of the ignored orphaned resource.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the ignored orphaned resource.
        """
elif False:
    GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecOrphanedResourceIgnoreArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: Group of the ignored orphaned resource.
        :param pulumi.Input[_builtins.str] kind: Kind of the ignored orphaned resource.
        :param pulumi.Input[_builtins.str] name: Name of the ignored orphaned resource.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Group of the ignored orphaned resource.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Kind of the ignored orphaned resource.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the ignored orphaned resource.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsAppProjectProjectSpecRoleArgsDict(TypedDict):
        description: pulumi.Input[_builtins.str]
        """
        Description of the role.
        """
        name: pulumi.Input[_builtins.str]
        """
        Name of the role.
        """
        groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Groups associated with the role.
        """
        jwt_tokens: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleJwtTokenArgsDict']]]]
        """
        JWT tokens associated with the role.
        """
        policies: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Policies associated with the role. These are argo RBAC policies and may not necessarily reflect in harness.
        """
elif False:
    GitopsAppProjectProjectSpecRoleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecRoleArgs:
    def __init__(__self__, *,
                 description: pulumi.Input[_builtins.str],
                 name: pulumi.Input[_builtins.str],
                 groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 jwt_tokens: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleJwtTokenArgs']]]] = None,
                 policies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] description: Description of the role.
        :param pulumi.Input[_builtins.str] name: Name of the role.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] groups: Groups associated with the role.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleJwtTokenArgs']]] jwt_tokens: JWT tokens associated with the role.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] policies: Policies associated with the role. These are argo RBAC policies and may not necessarily reflect in harness.
        """
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "name", name)
        if groups is not None:
            pulumi.set(__self__, "groups", groups)
        if jwt_tokens is not None:
            pulumi.set(__self__, "jwt_tokens", jwt_tokens)
        if policies is not None:
            pulumi.set(__self__, "policies", policies)

    @_builtins.property
    @pulumi.getter
    def description(self) -> pulumi.Input[_builtins.str]:
        """
        Description of the role.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "description", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the role.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Groups associated with the role.
        """
        return pulumi.get(self, "groups")

    @groups.setter
    def groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "groups", value)

    @_builtins.property
    @pulumi.getter(name="jwtTokens")
    def jwt_tokens(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleJwtTokenArgs']]]]:
        """
        JWT tokens associated with the role.
        """
        return pulumi.get(self, "jwt_tokens")

    @jwt_tokens.setter
    def jwt_tokens(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsAppProjectProjectSpecRoleJwtTokenArgs']]]]):
        pulumi.set(self, "jwt_tokens", value)

    @_builtins.property
    @pulumi.getter
    def policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Policies associated with the role. These are argo RBAC policies and may not necessarily reflect in harness.
        """
        return pulumi.get(self, "policies")

    @policies.setter
    def policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "policies", value)


if not MYPY:
    class GitopsAppProjectProjectSpecRoleJwtTokenArgsDict(TypedDict):
        exp: NotRequired[pulumi.Input[_builtins.str]]
        """
        Expiration time of the JWT token.
        """
        iat: NotRequired[pulumi.Input[_builtins.str]]
        """
        Issued At time of the JWT token.
        """
        id: NotRequired[pulumi.Input[_builtins.str]]
        """
        ID of the JWT token.
        """
elif False:
    GitopsAppProjectProjectSpecRoleJwtTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecRoleJwtTokenArgs:
    def __init__(__self__, *,
                 exp: Optional[pulumi.Input[_builtins.str]] = None,
                 iat: Optional[pulumi.Input[_builtins.str]] = None,
                 id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] exp: Expiration time of the JWT token.
        :param pulumi.Input[_builtins.str] iat: Issued At time of the JWT token.
        :param pulumi.Input[_builtins.str] id: ID of the JWT token.
        """
        if exp is not None:
            pulumi.set(__self__, "exp", exp)
        if iat is not None:
            pulumi.set(__self__, "iat", iat)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @_builtins.property
    @pulumi.getter
    def exp(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Expiration time of the JWT token.
        """
        return pulumi.get(self, "exp")

    @exp.setter
    def exp(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exp", value)

    @_builtins.property
    @pulumi.getter
    def iat(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Issued At time of the JWT token.
        """
        return pulumi.get(self, "iat")

    @iat.setter
    def iat(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "iat", value)

    @_builtins.property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        ID of the JWT token.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "id", value)


if not MYPY:
    class GitopsAppProjectProjectSpecSignatureKeyArgsDict(TypedDict):
        key_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        ID of the signature key.
        """
elif False:
    GitopsAppProjectProjectSpecSignatureKeyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecSignatureKeyArgs:
    def __init__(__self__, *,
                 key_id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] key_id: ID of the signature key.
        """
        if key_id is not None:
            pulumi.set(__self__, "key_id", key_id)

    @_builtins.property
    @pulumi.getter(name="keyId")
    def key_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        ID of the signature key.
        """
        return pulumi.get(self, "key_id")

    @key_id.setter
    def key_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key_id", value)


if not MYPY:
    class GitopsAppProjectProjectSpecSyncWindowArgsDict(TypedDict):
        applications: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Applications associated with synchronization window.
        """
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Clusters associated with synchronization window.
        """
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration of synchronization window.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        Kind of synchronization window.
        """
        manual_sync: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether manual synchronization is enabled.
        """
        namespaces: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Namespaces associated with synchronization window.
        """
        schedule: NotRequired[pulumi.Input[_builtins.str]]
        """
        Schedule of synchronization window.
        """
        time_zone: NotRequired[pulumi.Input[_builtins.str]]
        """
        Time zone of synchronization window.
        """
elif False:
    GitopsAppProjectProjectSpecSyncWindowArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsAppProjectProjectSpecSyncWindowArgs:
    def __init__(__self__, *,
                 applications: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 manual_sync: Optional[pulumi.Input[_builtins.bool]] = None,
                 namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 schedule: Optional[pulumi.Input[_builtins.str]] = None,
                 time_zone: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] applications: Applications associated with synchronization window.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] clusters: Clusters associated with synchronization window.
        :param pulumi.Input[_builtins.str] duration: Duration of synchronization window.
        :param pulumi.Input[_builtins.str] kind: Kind of synchronization window.
        :param pulumi.Input[_builtins.bool] manual_sync: Whether manual synchronization is enabled.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] namespaces: Namespaces associated with synchronization window.
        :param pulumi.Input[_builtins.str] schedule: Schedule of synchronization window.
        :param pulumi.Input[_builtins.str] time_zone: Time zone of synchronization window.
        """
        if applications is not None:
            pulumi.set(__self__, "applications", applications)
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if manual_sync is not None:
            pulumi.set(__self__, "manual_sync", manual_sync)
        if namespaces is not None:
            pulumi.set(__self__, "namespaces", namespaces)
        if schedule is not None:
            pulumi.set(__self__, "schedule", schedule)
        if time_zone is not None:
            pulumi.set(__self__, "time_zone", time_zone)

    @_builtins.property
    @pulumi.getter
    def applications(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Applications associated with synchronization window.
        """
        return pulumi.get(self, "applications")

    @applications.setter
    def applications(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "applications", value)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Clusters associated with synchronization window.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration of synchronization window.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Kind of synchronization window.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter(name="manualSync")
    def manual_sync(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether manual synchronization is enabled.
        """
        return pulumi.get(self, "manual_sync")

    @manual_sync.setter
    def manual_sync(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "manual_sync", value)

    @_builtins.property
    @pulumi.getter
    def namespaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Namespaces associated with synchronization window.
        """
        return pulumi.get(self, "namespaces")

    @namespaces.setter
    def namespaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "namespaces", value)

    @_builtins.property
    @pulumi.getter
    def schedule(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Schedule of synchronization window.
        """
        return pulumi.get(self, "schedule")

    @schedule.setter
    def schedule(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "schedule", value)

    @_builtins.property
    @pulumi.getter(name="timeZone")
    def time_zone(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Time zone of synchronization window.
        """
        return pulumi.get(self, "time_zone")

    @time_zone.setter
    def time_zone(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "time_zone", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetArgsDict(TypedDict):
        metadata: pulumi.Input['GitopsApplicationsetApplicationsetMetadataArgsDict']
        """
        Standard Kubernetes object metadata.
        """
        spec: pulumi.Input['GitopsApplicationsetApplicationsetSpecArgsDict']
        """
        Spec of the GitOps applicationset. Includes the generators and template.
        """
elif False:
    GitopsApplicationsetApplicationsetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetArgs:
    def __init__(__self__, *,
                 metadata: pulumi.Input['GitopsApplicationsetApplicationsetMetadataArgs'],
                 spec: pulumi.Input['GitopsApplicationsetApplicationsetSpecArgs']):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetMetadataArgs'] metadata: Standard Kubernetes object metadata.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecArgs'] spec: Spec of the GitOps applicationset. Includes the generators and template.
        """
        pulumi.set(__self__, "metadata", metadata)
        pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> pulumi.Input['GitopsApplicationsetApplicationsetMetadataArgs']:
        """
        Standard Kubernetes object metadata.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: pulumi.Input['GitopsApplicationsetApplicationsetMetadataArgs']):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> pulumi.Input['GitopsApplicationsetApplicationsetSpecArgs']:
        """
        Spec of the GitOps applicationset. Includes the generators and template.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: pulumi.Input['GitopsApplicationsetApplicationsetSpecArgs']):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations are unstructured key value pairs corresponding to a resource. External tools set these to store and retrieve arbitrary metadata.
        """
        generation: NotRequired[pulumi.Input[_builtins.str]]
        """
        A sequence number representing a specific generation of the desired state. This is a read-only value populated by the system.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name must be unique within a namespace. It is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Name cannot be updated.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the GitOps application. An empty namespace is equivalent to the namespace of the GitOps agent.
        """
        uid: NotRequired[pulumi.Input[_builtins.str]]
        """
        UID is the unique identifier in time and space value for this object. It is generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
        """
elif False:
    GitopsApplicationsetApplicationsetMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 generation: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 uid: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations are unstructured key value pairs corresponding to a resource. External tools set these to store and retrieve arbitrary metadata.
        :param pulumi.Input[_builtins.str] generation: A sequence number representing a specific generation of the desired state. This is a read-only value populated by the system.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.
        :param pulumi.Input[_builtins.str] name: Name must be unique within a namespace. It is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Name cannot be updated.
        :param pulumi.Input[_builtins.str] namespace: Namespace of the GitOps application. An empty namespace is equivalent to the namespace of the GitOps agent.
        :param pulumi.Input[_builtins.str] uid: UID is the unique identifier in time and space value for this object. It is generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if generation is not None:
            pulumi.set(__self__, "generation", generation)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if uid is not None:
            pulumi.set(__self__, "uid", uid)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations are unstructured key value pairs corresponding to a resource. External tools set these to store and retrieve arbitrary metadata.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def generation(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A sequence number representing a specific generation of the desired state. This is a read-only value populated by the system.
        """
        return pulumi.get(self, "generation")

    @generation.setter
    def generation(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "generation", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name must be unique within a namespace. It is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Name cannot be updated.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the GitOps application. An empty namespace is equivalent to the namespace of the GitOps agent.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def uid(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        UID is the unique identifier in time and space value for this object. It is generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
        """
        return pulumi.get(self, "uid")

    @uid.setter
    def uid(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "uid", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecArgsDict(TypedDict):
        generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorArgsDict']]]
        """
        Application set generators are responsible for generation of params, which are then rendered into the template: fields of the ApplicationSet resource.
        """
        template: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateArgsDict']
        """
        Application Set template. The template fields of the ApplicationSet spec are used to generate Gitops Applications.
        """
        go_template: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Enable Go templating for the template field.
        """
        go_template_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Optional list of go templating options, see https://pkg.go.dev/text/template#Template.Optional. This is only relevant if `goTemplate` is true
        """
        ignore_application_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgsDict']]]]
        """
        Application Set ignoreApplicationDifferences
        """
        strategy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyArgsDict']]
        """
        [Progressive Sync](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Progressive-Syncs/) strategy
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecSyncPolicyArgsDict']]
        """
        Application Set sync policy
        """
elif False:
    GitopsApplicationsetApplicationsetSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecArgs:
    def __init__(__self__, *,
                 generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorArgs']]],
                 template: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateArgs'],
                 go_template: Optional[pulumi.Input[_builtins.bool]] = None,
                 go_template_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 ignore_application_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgs']]]] = None,
                 strategy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyArgs']] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorArgs']]] generators: Application set generators are responsible for generation of params, which are then rendered into the template: fields of the ApplicationSet resource.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateArgs'] template: Application Set template. The template fields of the ApplicationSet spec are used to generate Gitops Applications.
        :param pulumi.Input[_builtins.bool] go_template: Enable Go templating for the template field.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] go_template_options: Optional list of go templating options, see https://pkg.go.dev/text/template#Template.Optional. This is only relevant if `goTemplate` is true
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgs']]] ignore_application_differences: Application Set ignoreApplicationDifferences
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyArgs'] strategy: [Progressive Sync](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Progressive-Syncs/) strategy
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecSyncPolicyArgs'] sync_policy: Application Set sync policy
        """
        pulumi.set(__self__, "generators", generators)
        pulumi.set(__self__, "template", template)
        if go_template is not None:
            pulumi.set(__self__, "go_template", go_template)
        if go_template_options is not None:
            pulumi.set(__self__, "go_template_options", go_template_options)
        if ignore_application_differences is not None:
            pulumi.set(__self__, "ignore_application_differences", ignore_application_differences)
        if strategy is not None:
            pulumi.set(__self__, "strategy", strategy)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def generators(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorArgs']]]:
        """
        Application set generators are responsible for generation of params, which are then rendered into the template: fields of the ApplicationSet resource.
        """
        return pulumi.get(self, "generators")

    @generators.setter
    def generators(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorArgs']]]):
        pulumi.set(self, "generators", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateArgs']:
        """
        Application Set template. The template fields of the ApplicationSet spec are used to generate Gitops Applications.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateArgs']):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter(name="goTemplate")
    def go_template(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Enable Go templating for the template field.
        """
        return pulumi.get(self, "go_template")

    @go_template.setter
    def go_template(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "go_template", value)

    @_builtins.property
    @pulumi.getter(name="goTemplateOptions")
    def go_template_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Optional list of go templating options, see https://pkg.go.dev/text/template#Template.Optional. This is only relevant if `goTemplate` is true
        """
        return pulumi.get(self, "go_template_options")

    @go_template_options.setter
    def go_template_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "go_template_options", value)

    @_builtins.property
    @pulumi.getter(name="ignoreApplicationDifferences")
    def ignore_application_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgs']]]]:
        """
        Application Set ignoreApplicationDifferences
        """
        return pulumi.get(self, "ignore_application_differences")

    @ignore_application_differences.setter
    def ignore_application_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgs']]]]):
        pulumi.set(self, "ignore_application_differences", value)

    @_builtins.property
    @pulumi.getter
    def strategy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyArgs']]:
        """
        [Progressive Sync](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Progressive-Syncs/) strategy
        """
        return pulumi.get(self, "strategy")

    @strategy.setter
    def strategy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyArgs']]):
        pulumi.set(self, "strategy", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecSyncPolicyArgs']]:
        """
        Application Set sync policy
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorArgsDict(TypedDict):
        cluster_decision_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgsDict']]]]
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterArgsDict']]]]
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        gits: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitArgsDict']]]]
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListArgsDict']]]]
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        matrices: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgsDict']]]]
        """
        [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        """
        merges: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeArgsDict']]]]
        """
        [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        """
        pull_requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgsDict']]]]
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        scm_providers: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgsDict']]]]
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgsDict']]
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorArgs:
    def __init__(__self__, *,
                 cluster_decision_resources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgs']]]] = None,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterArgs']]]] = None,
                 gits: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitArgs']]]] = None,
                 lists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListArgs']]]] = None,
                 matrices: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgs']]]] = None,
                 merges: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeArgs']]]] = None,
                 pull_requests: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgs']]]] = None,
                 scm_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgs']]]] = None,
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgs']]] cluster_decision_resources: The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterArgs']]] clusters: The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitArgs']]] gits: [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListArgs']]] lists: [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgs']]] matrices: [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeArgs']]] merges: [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgs']]] pull_requests: [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgs']]] scm_providers: [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgs'] selector: The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        if cluster_decision_resources is not None:
            pulumi.set(__self__, "cluster_decision_resources", cluster_decision_resources)
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if gits is not None:
            pulumi.set(__self__, "gits", gits)
        if lists is not None:
            pulumi.set(__self__, "lists", lists)
        if matrices is not None:
            pulumi.set(__self__, "matrices", matrices)
        if merges is not None:
            pulumi.set(__self__, "merges", merges)
        if pull_requests is not None:
            pulumi.set(__self__, "pull_requests", pull_requests)
        if scm_providers is not None:
            pulumi.set(__self__, "scm_providers", scm_providers)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)

    @_builtins.property
    @pulumi.getter(name="clusterDecisionResources")
    def cluster_decision_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgs']]]]:
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        return pulumi.get(self, "cluster_decision_resources")

    @cluster_decision_resources.setter
    def cluster_decision_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgs']]]]):
        pulumi.set(self, "cluster_decision_resources", value)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterArgs']]]]:
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterArgs']]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def gits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitArgs']]]]:
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        return pulumi.get(self, "gits")

    @gits.setter
    def gits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitArgs']]]]):
        pulumi.set(self, "gits", value)

    @_builtins.property
    @pulumi.getter
    def lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListArgs']]]]:
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        return pulumi.get(self, "lists")

    @lists.setter
    def lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListArgs']]]]):
        pulumi.set(self, "lists", value)

    @_builtins.property
    @pulumi.getter
    def matrices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgs']]]]:
        """
        [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        """
        return pulumi.get(self, "matrices")

    @matrices.setter
    def matrices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgs']]]]):
        pulumi.set(self, "matrices", value)

    @_builtins.property
    @pulumi.getter
    def merges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeArgs']]]]:
        """
        [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        """
        return pulumi.get(self, "merges")

    @merges.setter
    def merges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeArgs']]]]):
        pulumi.set(self, "merges", value)

    @_builtins.property
    @pulumi.getter(name="pullRequests")
    def pull_requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgs']]]]:
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        return pulumi.get(self, "pull_requests")

    @pull_requests.setter
    def pull_requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgs']]]]):
        pulumi.set(self, "pull_requests", value)

    @_builtins.property
    @pulumi.getter(name="scmProviders")
    def scm_providers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgs']]]]:
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        return pulumi.get(self, "scm_providers")

    @scm_providers.setter
    def scm_providers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgs']]]]):
        pulumi.set(self, "scm_providers", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgs']]:
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgs']]):
        pulumi.set(self, "selector", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgsDict']]
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgs']] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] enabled: Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgs'] selector: Label selector used to narrow the scope of targeted clusters.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        pulumi.set(__self__, "enabled", enabled)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgs']]:
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgs']]):
        pulumi.set(self, "selector", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgsDict(TypedDict):
        config_map_ref: pulumi.Input[_builtins.str]
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        label_selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgsDict']]
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceArgs:
    def __init__(__self__, *,
                 config_map_ref: pulumi.Input[_builtins.str],
                 label_selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgs']] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] config_map_ref: ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgs'] label_selector: Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        :param pulumi.Input[_builtins.str] name: Resource name of the kind, group and version, defined in the `config_map_ref`.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        pulumi.set(__self__, "config_map_ref", config_map_ref)
        if label_selector is not None:
            pulumi.set(__self__, "label_selector", label_selector)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter(name="configMapRef")
    def config_map_ref(self) -> pulumi.Input[_builtins.str]:
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        return pulumi.get(self, "config_map_ref")

    @config_map_ref.setter
    def config_map_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_ref", value)

    @_builtins.property
    @pulumi.getter(name="labelSelector")
    def label_selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgs']]:
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        return pulumi.get(self, "label_selector")

    @label_selector.setter
    def label_selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgs']]):
        pulumi.set(self, "label_selector", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository to use.
        """
        directories: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgsDict']]]]
        """
        List of directories in the source repository to use when template the Application..
        """
        files: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgsDict']]]]
        """
        List of files in the source repository to use when template the Application.
        """
        path_param_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix for all path-related parameter names.
        """
        revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source repository to use.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 directories: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgs']]]] = None,
                 files: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgs']]]] = None,
                 path_param_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 revision: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository to use.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgs']]] directories: List of directories in the source repository to use when template the Application..
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgs']]] files: List of files in the source repository to use when template the Application.
        :param pulumi.Input[_builtins.str] path_param_prefix: Prefix for all path-related parameter names.
        :param pulumi.Input[_builtins.str] revision: Revision of the source repository to use.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        if directories is not None:
            pulumi.set(__self__, "directories", directories)
        if files is not None:
            pulumi.set(__self__, "files", files)
        if path_param_prefix is not None:
            pulumi.set(__self__, "path_param_prefix", path_param_prefix)
        if revision is not None:
            pulumi.set(__self__, "revision", revision)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository to use.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter
    def directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgs']]]]:
        """
        List of directories in the source repository to use when template the Application..
        """
        return pulumi.get(self, "directories")

    @directories.setter
    def directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgs']]]]):
        pulumi.set(self, "directories", value)

    @_builtins.property
    @pulumi.getter
    def files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgs']]]]:
        """
        List of files in the source repository to use when template the Application.
        """
        return pulumi.get(self, "files")

    @files.setter
    def files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgs']]]]):
        pulumi.set(self, "files", value)

    @_builtins.property
    @pulumi.getter(name="pathParamPrefix")
    def path_param_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix for all path-related parameter names.
        """
        return pulumi.get(self, "path_param_prefix")

    @path_param_prefix.setter
    def path_param_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path_param_prefix", value)

    @_builtins.property
    @pulumi.getter
    def revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source repository to use.
        """
        return pulumi.get(self, "revision")

    @revision.setter
    def revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path in the repository.
        """
        exclude: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitDirectoryArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str],
                 exclude: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] path: Path in the repository.
        :param pulumi.Input[_builtins.bool] exclude: Flag indicating whether or not the directory should be excluded when templating.
        """
        pulumi.set(__self__, "path", path)
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "exclude", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path to the file in the repository.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitFileArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] path: Path to the file in the repository.
        """
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListArgsDict(TypedDict):
        elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]
        """
        List of key/value pairs to pass as parameters into the template.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListArgs:
    def __init__(__self__, *,
                 elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] elements: List of key/value pairs to pass as parameters into the template.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "elements", elements)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def elements(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]:
        """
        List of key/value pairs to pass as parameters into the template.
        """
        return pulumi.get(self, "elements")

    @elements.setter
    def elements(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]):
        pulumi.set(self, "elements", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgsDict(TypedDict):
        generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgsDict']]]
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixArgs:
    def __init__(__self__, *,
                 generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgs']]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgs']]] generators: Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "generators", generators)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def generators(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgs']]]:
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        """
        return pulumi.get(self, "generators")

    @generators.setter
    def generators(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgs']]]):
        pulumi.set(self, "generators", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgsDict(TypedDict):
        cluster_decision_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgsDict']]]]
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgsDict']]]]
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        gits: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgsDict']]]]
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgsDict']]]]
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        matrices: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgsDict']]]]
        """
        [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        """
        merges: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgsDict']]]]
        """
        [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        """
        pull_requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgsDict']]]]
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        scm_providers: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgsDict']]]]
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgsDict']]
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorArgs:
    def __init__(__self__, *,
                 cluster_decision_resources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]] = None,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgs']]]] = None,
                 gits: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgs']]]] = None,
                 lists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgs']]]] = None,
                 matrices: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgs']]]] = None,
                 merges: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgs']]]] = None,
                 pull_requests: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgs']]]] = None,
                 scm_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgs']]]] = None,
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgs']]] cluster_decision_resources: The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgs']]] clusters: The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgs']]] gits: [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgs']]] lists: [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgs']]] matrices: [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgs']]] merges: [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgs']]] pull_requests: [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgs']]] scm_providers: [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgs'] selector: The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        if cluster_decision_resources is not None:
            pulumi.set(__self__, "cluster_decision_resources", cluster_decision_resources)
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if gits is not None:
            pulumi.set(__self__, "gits", gits)
        if lists is not None:
            pulumi.set(__self__, "lists", lists)
        if matrices is not None:
            pulumi.set(__self__, "matrices", matrices)
        if merges is not None:
            pulumi.set(__self__, "merges", merges)
        if pull_requests is not None:
            pulumi.set(__self__, "pull_requests", pull_requests)
        if scm_providers is not None:
            pulumi.set(__self__, "scm_providers", scm_providers)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)

    @_builtins.property
    @pulumi.getter(name="clusterDecisionResources")
    def cluster_decision_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]]:
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        return pulumi.get(self, "cluster_decision_resources")

    @cluster_decision_resources.setter
    def cluster_decision_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]]):
        pulumi.set(self, "cluster_decision_resources", value)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgs']]]]:
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgs']]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def gits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgs']]]]:
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        return pulumi.get(self, "gits")

    @gits.setter
    def gits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgs']]]]):
        pulumi.set(self, "gits", value)

    @_builtins.property
    @pulumi.getter
    def lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgs']]]]:
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        return pulumi.get(self, "lists")

    @lists.setter
    def lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgs']]]]):
        pulumi.set(self, "lists", value)

    @_builtins.property
    @pulumi.getter
    def matrices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgs']]]]:
        """
        [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        """
        return pulumi.get(self, "matrices")

    @matrices.setter
    def matrices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgs']]]]):
        pulumi.set(self, "matrices", value)

    @_builtins.property
    @pulumi.getter
    def merges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgs']]]]:
        """
        [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        """
        return pulumi.get(self, "merges")

    @merges.setter
    def merges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgs']]]]):
        pulumi.set(self, "merges", value)

    @_builtins.property
    @pulumi.getter(name="pullRequests")
    def pull_requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgs']]]]:
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        return pulumi.get(self, "pull_requests")

    @pull_requests.setter
    def pull_requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgs']]]]):
        pulumi.set(self, "pull_requests", value)

    @_builtins.property
    @pulumi.getter(name="scmProviders")
    def scm_providers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgs']]]]:
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        return pulumi.get(self, "scm_providers")

    @scm_providers.setter
    def scm_providers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgs']]]]):
        pulumi.set(self, "scm_providers", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgs']]:
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgs']]):
        pulumi.set(self, "selector", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgsDict']]
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgs']] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] enabled: Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgs'] selector: Label selector used to narrow the scope of targeted clusters.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        pulumi.set(__self__, "enabled", enabled)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgs']]:
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgs']]):
        pulumi.set(self, "selector", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgsDict(TypedDict):
        config_map_ref: pulumi.Input[_builtins.str]
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        label_selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict']]
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceArgs:
    def __init__(__self__, *,
                 config_map_ref: pulumi.Input[_builtins.str],
                 label_selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] config_map_ref: ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs'] label_selector: Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        :param pulumi.Input[_builtins.str] name: Resource name of the kind, group and version, defined in the `config_map_ref`.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        pulumi.set(__self__, "config_map_ref", config_map_ref)
        if label_selector is not None:
            pulumi.set(__self__, "label_selector", label_selector)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter(name="configMapRef")
    def config_map_ref(self) -> pulumi.Input[_builtins.str]:
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        return pulumi.get(self, "config_map_ref")

    @config_map_ref.setter
    def config_map_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_ref", value)

    @_builtins.property
    @pulumi.getter(name="labelSelector")
    def label_selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']]:
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        return pulumi.get(self, "label_selector")

    @label_selector.setter
    def label_selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']]):
        pulumi.set(self, "label_selector", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository to use.
        """
        directories: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgsDict']]]]
        """
        List of directories in the source repository to use when template the Application..
        """
        files: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgsDict']]]]
        """
        List of files in the source repository to use when template the Application.
        """
        path_param_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix for all path-related parameter names.
        """
        revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source repository to use.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 directories: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgs']]]] = None,
                 files: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgs']]]] = None,
                 path_param_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 revision: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository to use.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgs']]] directories: List of directories in the source repository to use when template the Application..
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgs']]] files: List of files in the source repository to use when template the Application.
        :param pulumi.Input[_builtins.str] path_param_prefix: Prefix for all path-related parameter names.
        :param pulumi.Input[_builtins.str] revision: Revision of the source repository to use.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        if directories is not None:
            pulumi.set(__self__, "directories", directories)
        if files is not None:
            pulumi.set(__self__, "files", files)
        if path_param_prefix is not None:
            pulumi.set(__self__, "path_param_prefix", path_param_prefix)
        if revision is not None:
            pulumi.set(__self__, "revision", revision)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository to use.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter
    def directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgs']]]]:
        """
        List of directories in the source repository to use when template the Application..
        """
        return pulumi.get(self, "directories")

    @directories.setter
    def directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgs']]]]):
        pulumi.set(self, "directories", value)

    @_builtins.property
    @pulumi.getter
    def files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgs']]]]:
        """
        List of files in the source repository to use when template the Application.
        """
        return pulumi.get(self, "files")

    @files.setter
    def files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgs']]]]):
        pulumi.set(self, "files", value)

    @_builtins.property
    @pulumi.getter(name="pathParamPrefix")
    def path_param_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix for all path-related parameter names.
        """
        return pulumi.get(self, "path_param_prefix")

    @path_param_prefix.setter
    def path_param_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path_param_prefix", value)

    @_builtins.property
    @pulumi.getter
    def revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source repository to use.
        """
        return pulumi.get(self, "revision")

    @revision.setter
    def revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path in the repository.
        """
        exclude: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitDirectoryArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str],
                 exclude: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] path: Path in the repository.
        :param pulumi.Input[_builtins.bool] exclude: Flag indicating whether or not the directory should be excluded when templating.
        """
        pulumi.set(__self__, "path", path)
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "exclude", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path to the file in the repository.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitFileArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] path: Path to the file in the repository.
        """
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgsDict(TypedDict):
        elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]
        """
        List of key/value pairs to pass as parameters into the template.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListArgs:
    def __init__(__self__, *,
                 elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] elements: List of key/value pairs to pass as parameters into the template.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "elements", elements)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def elements(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]:
        """
        List of key/value pairs to pass as parameters into the template.
        """
        return pulumi.get(self, "elements")

    @elements.setter
    def elements(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]):
        pulumi.set(self, "elements", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgsDict(TypedDict):
        generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgsDict']]]
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixArgs:
    def __init__(__self__, *,
                 generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgs']]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgs']]] generators: Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "generators", generators)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def generators(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgs']]]:
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        """
        return pulumi.get(self, "generators")

    @generators.setter
    def generators(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgs']]]):
        pulumi.set(self, "generators", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgsDict(TypedDict):
        cluster_decision_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgsDict']]]]
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgsDict']]]]
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        gits: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgsDict']]]]
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgsDict']]]]
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        pull_requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgsDict']]]]
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        scm_providers: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgsDict']]]]
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgsDict']]
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorArgs:
    def __init__(__self__, *,
                 cluster_decision_resources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]] = None,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgs']]]] = None,
                 gits: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgs']]]] = None,
                 lists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgs']]]] = None,
                 pull_requests: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgs']]]] = None,
                 scm_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgs']]]] = None,
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgs']]] cluster_decision_resources: The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgs']]] clusters: The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgs']]] gits: [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgs']]] lists: [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgs']]] pull_requests: [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgs']]] scm_providers: [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgs'] selector: The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        if cluster_decision_resources is not None:
            pulumi.set(__self__, "cluster_decision_resources", cluster_decision_resources)
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if gits is not None:
            pulumi.set(__self__, "gits", gits)
        if lists is not None:
            pulumi.set(__self__, "lists", lists)
        if pull_requests is not None:
            pulumi.set(__self__, "pull_requests", pull_requests)
        if scm_providers is not None:
            pulumi.set(__self__, "scm_providers", scm_providers)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)

    @_builtins.property
    @pulumi.getter(name="clusterDecisionResources")
    def cluster_decision_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]]:
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        return pulumi.get(self, "cluster_decision_resources")

    @cluster_decision_resources.setter
    def cluster_decision_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]]):
        pulumi.set(self, "cluster_decision_resources", value)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgs']]]]:
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgs']]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def gits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgs']]]]:
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        return pulumi.get(self, "gits")

    @gits.setter
    def gits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgs']]]]):
        pulumi.set(self, "gits", value)

    @_builtins.property
    @pulumi.getter
    def lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgs']]]]:
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        return pulumi.get(self, "lists")

    @lists.setter
    def lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgs']]]]):
        pulumi.set(self, "lists", value)

    @_builtins.property
    @pulumi.getter(name="pullRequests")
    def pull_requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgs']]]]:
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        return pulumi.get(self, "pull_requests")

    @pull_requests.setter
    def pull_requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgs']]]]):
        pulumi.set(self, "pull_requests", value)

    @_builtins.property
    @pulumi.getter(name="scmProviders")
    def scm_providers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgs']]]]:
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        return pulumi.get(self, "scm_providers")

    @scm_providers.setter
    def scm_providers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgs']]]]):
        pulumi.set(self, "scm_providers", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgs']]:
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgs']]):
        pulumi.set(self, "selector", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgsDict']]
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgs']] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] enabled: Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgs'] selector: Label selector used to narrow the scope of targeted clusters.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        pulumi.set(__self__, "enabled", enabled)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgs']]:
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgs']]):
        pulumi.set(self, "selector", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgsDict(TypedDict):
        config_map_ref: pulumi.Input[_builtins.str]
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        label_selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict']]
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceArgs:
    def __init__(__self__, *,
                 config_map_ref: pulumi.Input[_builtins.str],
                 label_selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] config_map_ref: ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs'] label_selector: Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        :param pulumi.Input[_builtins.str] name: Resource name of the kind, group and version, defined in the `config_map_ref`.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        pulumi.set(__self__, "config_map_ref", config_map_ref)
        if label_selector is not None:
            pulumi.set(__self__, "label_selector", label_selector)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter(name="configMapRef")
    def config_map_ref(self) -> pulumi.Input[_builtins.str]:
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        return pulumi.get(self, "config_map_ref")

    @config_map_ref.setter
    def config_map_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_ref", value)

    @_builtins.property
    @pulumi.getter(name="labelSelector")
    def label_selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']]:
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        return pulumi.get(self, "label_selector")

    @label_selector.setter
    def label_selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']]):
        pulumi.set(self, "label_selector", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository to use.
        """
        directories: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgsDict']]]]
        """
        List of directories in the source repository to use when template the Application..
        """
        files: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgsDict']]]]
        """
        List of files in the source repository to use when template the Application.
        """
        path_param_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix for all path-related parameter names.
        """
        revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source repository to use.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 directories: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgs']]]] = None,
                 files: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgs']]]] = None,
                 path_param_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 revision: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository to use.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgs']]] directories: List of directories in the source repository to use when template the Application..
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgs']]] files: List of files in the source repository to use when template the Application.
        :param pulumi.Input[_builtins.str] path_param_prefix: Prefix for all path-related parameter names.
        :param pulumi.Input[_builtins.str] revision: Revision of the source repository to use.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        if directories is not None:
            pulumi.set(__self__, "directories", directories)
        if files is not None:
            pulumi.set(__self__, "files", files)
        if path_param_prefix is not None:
            pulumi.set(__self__, "path_param_prefix", path_param_prefix)
        if revision is not None:
            pulumi.set(__self__, "revision", revision)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository to use.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter
    def directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgs']]]]:
        """
        List of directories in the source repository to use when template the Application..
        """
        return pulumi.get(self, "directories")

    @directories.setter
    def directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgs']]]]):
        pulumi.set(self, "directories", value)

    @_builtins.property
    @pulumi.getter
    def files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgs']]]]:
        """
        List of files in the source repository to use when template the Application.
        """
        return pulumi.get(self, "files")

    @files.setter
    def files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgs']]]]):
        pulumi.set(self, "files", value)

    @_builtins.property
    @pulumi.getter(name="pathParamPrefix")
    def path_param_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix for all path-related parameter names.
        """
        return pulumi.get(self, "path_param_prefix")

    @path_param_prefix.setter
    def path_param_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path_param_prefix", value)

    @_builtins.property
    @pulumi.getter
    def revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source repository to use.
        """
        return pulumi.get(self, "revision")

    @revision.setter
    def revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path in the repository.
        """
        exclude: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitDirectoryArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str],
                 exclude: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] path: Path in the repository.
        :param pulumi.Input[_builtins.bool] exclude: Flag indicating whether or not the directory should be excluded when templating.
        """
        pulumi.set(__self__, "path", path)
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "exclude", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path to the file in the repository.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitFileArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] path: Path to the file in the repository.
        """
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgsDict(TypedDict):
        elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]
        """
        List of key/value pairs to pass as parameters into the template.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListArgs:
    def __init__(__self__, *,
                 elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] elements: List of key/value pairs to pass as parameters into the template.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "elements", elements)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def elements(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]:
        """
        List of key/value pairs to pass as parameters into the template.
        """
        return pulumi.get(self, "elements")

    @elements.setter
    def elements(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]):
        pulumi.set(self, "elements", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgsDict(TypedDict):
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict']]
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgsDict']]]]
        """
        Filters allow selecting which pull requests to generate for.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgsDict']]
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgsDict']]
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgsDict']]
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestArgs:
    def __init__(__self__, *,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgs'] bitbucket_server: Fetch pull requests from a repo hosted on a Bitbucket Server.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgs']]] filters: Filters allow selecting which pull requests to generate for.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgs'] gitea: Specify the repository from which to fetch the Gitea Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgs'] github: Specify the repository from which to fetch the GitHub Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgs'] gitlab: Specify the project from which to fetch the GitLab merge requests.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 30min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']]:
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgs']]]]:
        """
        Filters allow selecting which pull requests to generate for.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgs']]:
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgs']]:
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgs']]:
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Repo name to scan.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.str] repo: Repo name to scan.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "repo", repo)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Gitea API URL to talk to.
        """
        owner: pulumi.Input[_builtins.str]
        """
        Gitea org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Gitea repo name to scan.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Gitea API URL to talk to.
        :param pulumi.Input[_builtins.str] owner: Gitea org or user to scan.
        :param pulumi.Input[_builtins.str] repo: Gitea repo name to scan.
        :param pulumi.Input[_builtins.bool] insecure: Allow insecure tls, for self-signed certificates; default: false.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Gitea API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        GitHub org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        GitHub repo name to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: GitHub org or user to scan.
        :param pulumi.Input[_builtins.str] repo: GitHub repo name to scan.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret with permission to access pull requests.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgsDict(TypedDict):
        project: pulumi.Input[_builtins.str]
        """
        GitLab project to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        pull_request_state: NotRequired[pulumi.Input[_builtins.str]]
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabArgs:
    def __init__(__self__, *,
                 project: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pull_request_state: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] project: GitLab project to scan.
        :param pulumi.Input[_builtins.str] api: The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input[_builtins.str] pull_request_state: additional MRs filter to get only those with a certain state. Default:  "" (all states).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "project", project)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if pull_request_state is not None:
            pulumi.set(__self__, "pull_request_state", pull_request_state)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        GitLab project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="pullRequestState")
    def pull_request_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        return pulumi.get(self, "pull_request_state")

    @pull_request_state.setter
    def pull_request_state(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pull_request_state", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgsDict(TypedDict):
        azure_devops: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict']]
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        bitbucket_cloud: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict']]
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict']]
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        clone_protocol: NotRequired[pulumi.Input[_builtins.str]]
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgsDict']]]]
        """
        Filters for which repos should be considered.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgsDict']]
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgsDict']]
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgsDict']]
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderArgs:
    def __init__(__self__, *,
                 azure_devops: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']] = None,
                 bitbucket_cloud: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']] = None,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']] = None,
                 clone_protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgs'] azure_devops: Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs'] bitbucket_cloud: Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgs'] bitbucket_server: Use the Bitbucket Server API (1.0) to scan repos in a project.
        :param pulumi.Input[_builtins.str] clone_protocol: Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgs']]] filters: Filters for which repos should be considered.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgs'] gitea: Gitea mode uses the Gitea API to scan organizations in your instance.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgs'] github: Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgs'] gitlab: Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if azure_devops is not None:
            pulumi.set(__self__, "azure_devops", azure_devops)
        if bitbucket_cloud is not None:
            pulumi.set(__self__, "bitbucket_cloud", bitbucket_cloud)
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if clone_protocol is not None:
            pulumi.set(__self__, "clone_protocol", clone_protocol)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="azureDevops")
    def azure_devops(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']]:
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        return pulumi.get(self, "azure_devops")

    @azure_devops.setter
    def azure_devops(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']]):
        pulumi.set(self, "azure_devops", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketCloud")
    def bitbucket_cloud(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']]:
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        return pulumi.get(self, "bitbucket_cloud")

    @bitbucket_cloud.setter
    def bitbucket_cloud(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']]):
        pulumi.set(self, "bitbucket_cloud", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']]:
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter(name="cloneProtocol")
    def clone_protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        return pulumi.get(self, "clone_protocol")

    @clone_protocol.setter
    def clone_protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "clone_protocol", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgs']]]]:
        """
        Filters for which repos should be considered.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgs']]:
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgs']]:
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgs']]:
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        Azure Devops organization. E.g. "my-organization".
        """
        team_project: pulumi.Input[_builtins.str]
        """
        Azure Devops team project. E.g. "my-team".
        """
        access_token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict']]
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 team_project: pulumi.Input[_builtins.str],
                 access_token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']] = None,
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] organization: Azure Devops organization. E.g. "my-organization".
        :param pulumi.Input[_builtins.str] team_project: Azure Devops team project. E.g. "my-team".
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs'] access_token_ref: The Personal Access Token (PAT) to use when connecting.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "team_project", team_project)
        if access_token_ref is not None:
            pulumi.set(__self__, "access_token_ref", access_token_ref)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops organization. E.g. "my-organization".
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="teamProject")
    def team_project(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops team project. E.g. "my-team".
        """
        return pulumi.get(self, "team_project")

    @team_project.setter
    def team_project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "team_project", value)

    @_builtins.property
    @pulumi.getter(name="accessTokenRef")
    def access_token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]:
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        return pulumi.get(self, "access_token_ref")

    @access_token_ref.setter
    def access_token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]):
        pulumi.set(self, "access_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Bitbucket workspace to scan.
        """
        user: pulumi.Input[_builtins.str]
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        app_password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict']]
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 user: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 app_password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Bitbucket workspace to scan.
        :param pulumi.Input[_builtins.str] user: Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs'] app_password_ref: The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "user", user)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if app_password_ref is not None:
            pulumi.set(__self__, "app_password_ref", app_password_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket workspace to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def user(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        return pulumi.get(self, "user")

    @user.setter
    def user(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="appPasswordRef")
    def app_password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]:
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        return pulumi.get(self, "app_password_ref")

    @app_password_ref.setter
    def app_password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]):
        pulumi.set(self, "app_password_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
        label_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match at least one label.
        """
        paths_do_not_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must not exist.
        """
        paths_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must exist.
        """
        repository_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex for repo names.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None,
                 label_match: Optional[pulumi.Input[_builtins.str]] = None,
                 paths_do_not_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 paths_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 repository_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        :param pulumi.Input[_builtins.str] label_match: A regex which must match at least one label.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_do_not_exists: An array of paths, all of which must not exist.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_exists: An array of paths, all of which must exist.
        :param pulumi.Input[_builtins.str] repository_match: A regex for repo names.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)
        if label_match is not None:
            pulumi.set(__self__, "label_match", label_match)
        if paths_do_not_exists is not None:
            pulumi.set(__self__, "paths_do_not_exists", paths_do_not_exists)
        if paths_exists is not None:
            pulumi.set(__self__, "paths_exists", paths_exists)
        if repository_match is not None:
            pulumi.set(__self__, "repository_match", repository_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)

    @_builtins.property
    @pulumi.getter(name="labelMatch")
    def label_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match at least one label.
        """
        return pulumi.get(self, "label_match")

    @label_match.setter
    def label_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "label_match", value)

    @_builtins.property
    @pulumi.getter(name="pathsDoNotExists")
    def paths_do_not_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must not exist.
        """
        return pulumi.get(self, "paths_do_not_exists")

    @paths_do_not_exists.setter
    def paths_do_not_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_do_not_exists", value)

    @_builtins.property
    @pulumi.getter(name="pathsExists")
    def paths_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must exist.
        """
        return pulumi.get(self, "paths_exists")

    @paths_exists.setter
    def paths_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_exists", value)

    @_builtins.property
    @pulumi.getter(name="repositoryMatch")
    def repository_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex for repo names.
        """
        return pulumi.get(self, "repository_match")

    @repository_match.setter
    def repository_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Gitea organization or user to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow self-signed TLS / Certificates.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Gitea organization or user to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        :param pulumi.Input[_builtins.bool] insecure: Allow self-signed TLS / Certificates.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea organization or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow self-signed TLS / Certificates.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        GitHub org to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] organization: GitHub org to scan.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "organization", organization)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org to scan.
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgsDict(TypedDict):
        group: pulumi.Input[_builtins.str]
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitlab API URL to talk to.
        """
        ca_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict']]
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        include_subgroups: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabArgs:
    def __init__(__self__, *,
                 group: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 ca_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']] = None,
                 include_subgroups: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] group: Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitlab API URL to talk to.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs'] ca_ref: Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        :param pulumi.Input[_builtins.bool] include_subgroups: Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "group", group)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if ca_ref is not None:
            pulumi.set(__self__, "ca_ref", ca_ref)
        if include_subgroups is not None:
            pulumi.set(__self__, "include_subgroups", include_subgroups)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def group(self) -> pulumi.Input[_builtins.str]:
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitlab API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="caRef")
    def ca_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']]:
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        return pulumi.get(self, "ca_ref")

    @ca_ref.setter
    def ca_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']]):
        pulumi.set(self, "ca_ref", value)

    @_builtins.property
    @pulumi.getter(name="includeSubgroups")
    def include_subgroups(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        return pulumi.get(self, "include_subgroups")

    @include_subgroups.setter
    def include_subgroups(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "include_subgroups", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict(TypedDict):
        config_map_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `ConfigMap`.
        """
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs:
    def __init__(__self__, *,
                 config_map_name: pulumi.Input[_builtins.str],
                 key: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] config_map_name: Name of Kubernetes `ConfigMap`.
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `ConfigMap`.
        """
        pulumi.set(__self__, "config_map_name", config_map_name)
        pulumi.set(__self__, "key", key)

    @_builtins.property
    @pulumi.getter(name="configMapName")
    def config_map_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "config_map_name")

    @config_map_name.setter
    def config_map_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_name", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixGeneratorSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgsDict(TypedDict):
        generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgsDict']]]
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        """
        merge_keys: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        Keys to merge into resulting parameter set.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeArgs:
    def __init__(__self__, *,
                 generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgs']]],
                 merge_keys: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgs']]] generators: Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] merge_keys: Keys to merge into resulting parameter set.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "generators", generators)
        pulumi.set(__self__, "merge_keys", merge_keys)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def generators(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgs']]]:
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        """
        return pulumi.get(self, "generators")

    @generators.setter
    def generators(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgs']]]):
        pulumi.set(self, "generators", value)

    @_builtins.property
    @pulumi.getter(name="mergeKeys")
    def merge_keys(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        Keys to merge into resulting parameter set.
        """
        return pulumi.get(self, "merge_keys")

    @merge_keys.setter
    def merge_keys(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "merge_keys", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgsDict(TypedDict):
        cluster_decision_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgsDict']]]]
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgsDict']]]]
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        gits: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgsDict']]]]
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgsDict']]]]
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        pull_requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgsDict']]]]
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        scm_providers: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgsDict']]]]
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgsDict']]
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorArgs:
    def __init__(__self__, *,
                 cluster_decision_resources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgs']]]] = None,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgs']]]] = None,
                 gits: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgs']]]] = None,
                 lists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgs']]]] = None,
                 pull_requests: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgs']]]] = None,
                 scm_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgs']]]] = None,
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgs']]] cluster_decision_resources: The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgs']]] clusters: The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgs']]] gits: [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgs']]] lists: [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgs']]] pull_requests: [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgs']]] scm_providers: [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgs'] selector: The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        if cluster_decision_resources is not None:
            pulumi.set(__self__, "cluster_decision_resources", cluster_decision_resources)
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if gits is not None:
            pulumi.set(__self__, "gits", gits)
        if lists is not None:
            pulumi.set(__self__, "lists", lists)
        if pull_requests is not None:
            pulumi.set(__self__, "pull_requests", pull_requests)
        if scm_providers is not None:
            pulumi.set(__self__, "scm_providers", scm_providers)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)

    @_builtins.property
    @pulumi.getter(name="clusterDecisionResources")
    def cluster_decision_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgs']]]]:
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        return pulumi.get(self, "cluster_decision_resources")

    @cluster_decision_resources.setter
    def cluster_decision_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgs']]]]):
        pulumi.set(self, "cluster_decision_resources", value)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgs']]]]:
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgs']]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def gits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgs']]]]:
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        return pulumi.get(self, "gits")

    @gits.setter
    def gits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgs']]]]):
        pulumi.set(self, "gits", value)

    @_builtins.property
    @pulumi.getter
    def lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgs']]]]:
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        return pulumi.get(self, "lists")

    @lists.setter
    def lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgs']]]]):
        pulumi.set(self, "lists", value)

    @_builtins.property
    @pulumi.getter(name="pullRequests")
    def pull_requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgs']]]]:
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        return pulumi.get(self, "pull_requests")

    @pull_requests.setter
    def pull_requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgs']]]]):
        pulumi.set(self, "pull_requests", value)

    @_builtins.property
    @pulumi.getter(name="scmProviders")
    def scm_providers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgs']]]]:
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        return pulumi.get(self, "scm_providers")

    @scm_providers.setter
    def scm_providers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgs']]]]):
        pulumi.set(self, "scm_providers", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgs']]:
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgs']]):
        pulumi.set(self, "selector", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgsDict']]
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgs']] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] enabled: Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgs'] selector: Label selector used to narrow the scope of targeted clusters.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        pulumi.set(__self__, "enabled", enabled)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgs']]:
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgs']]):
        pulumi.set(self, "selector", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgsDict(TypedDict):
        config_map_ref: pulumi.Input[_builtins.str]
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        label_selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict']]
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceArgs:
    def __init__(__self__, *,
                 config_map_ref: pulumi.Input[_builtins.str],
                 label_selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] config_map_ref: ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs'] label_selector: Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        :param pulumi.Input[_builtins.str] name: Resource name of the kind, group and version, defined in the `config_map_ref`.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        pulumi.set(__self__, "config_map_ref", config_map_ref)
        if label_selector is not None:
            pulumi.set(__self__, "label_selector", label_selector)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter(name="configMapRef")
    def config_map_ref(self) -> pulumi.Input[_builtins.str]:
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        return pulumi.get(self, "config_map_ref")

    @config_map_ref.setter
    def config_map_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_ref", value)

    @_builtins.property
    @pulumi.getter(name="labelSelector")
    def label_selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']]:
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        return pulumi.get(self, "label_selector")

    @label_selector.setter
    def label_selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']]):
        pulumi.set(self, "label_selector", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository to use.
        """
        directories: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgsDict']]]]
        """
        List of directories in the source repository to use when template the Application..
        """
        files: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgsDict']]]]
        """
        List of files in the source repository to use when template the Application.
        """
        path_param_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix for all path-related parameter names.
        """
        revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source repository to use.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 directories: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgs']]]] = None,
                 files: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgs']]]] = None,
                 path_param_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 revision: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository to use.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgs']]] directories: List of directories in the source repository to use when template the Application..
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgs']]] files: List of files in the source repository to use when template the Application.
        :param pulumi.Input[_builtins.str] path_param_prefix: Prefix for all path-related parameter names.
        :param pulumi.Input[_builtins.str] revision: Revision of the source repository to use.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        if directories is not None:
            pulumi.set(__self__, "directories", directories)
        if files is not None:
            pulumi.set(__self__, "files", files)
        if path_param_prefix is not None:
            pulumi.set(__self__, "path_param_prefix", path_param_prefix)
        if revision is not None:
            pulumi.set(__self__, "revision", revision)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository to use.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter
    def directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgs']]]]:
        """
        List of directories in the source repository to use when template the Application..
        """
        return pulumi.get(self, "directories")

    @directories.setter
    def directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgs']]]]):
        pulumi.set(self, "directories", value)

    @_builtins.property
    @pulumi.getter
    def files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgs']]]]:
        """
        List of files in the source repository to use when template the Application.
        """
        return pulumi.get(self, "files")

    @files.setter
    def files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgs']]]]):
        pulumi.set(self, "files", value)

    @_builtins.property
    @pulumi.getter(name="pathParamPrefix")
    def path_param_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix for all path-related parameter names.
        """
        return pulumi.get(self, "path_param_prefix")

    @path_param_prefix.setter
    def path_param_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path_param_prefix", value)

    @_builtins.property
    @pulumi.getter
    def revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source repository to use.
        """
        return pulumi.get(self, "revision")

    @revision.setter
    def revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path in the repository.
        """
        exclude: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitDirectoryArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str],
                 exclude: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] path: Path in the repository.
        :param pulumi.Input[_builtins.bool] exclude: Flag indicating whether or not the directory should be excluded when templating.
        """
        pulumi.set(__self__, "path", path)
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "exclude", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path to the file in the repository.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitFileArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] path: Path to the file in the repository.
        """
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgsDict(TypedDict):
        elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]
        """
        List of key/value pairs to pass as parameters into the template.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListArgs:
    def __init__(__self__, *,
                 elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] elements: List of key/value pairs to pass as parameters into the template.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "elements", elements)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def elements(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]:
        """
        List of key/value pairs to pass as parameters into the template.
        """
        return pulumi.get(self, "elements")

    @elements.setter
    def elements(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]):
        pulumi.set(self, "elements", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgsDict(TypedDict):
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict']]
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgsDict']]]]
        """
        Filters allow selecting which pull requests to generate for.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgsDict']]
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgsDict']]
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgsDict']]
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestArgs:
    def __init__(__self__, *,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgs']] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgs'] bitbucket_server: Fetch pull requests from a repo hosted on a Bitbucket Server.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgs']]] filters: Filters allow selecting which pull requests to generate for.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgs'] gitea: Specify the repository from which to fetch the Gitea Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgs'] github: Specify the repository from which to fetch the GitHub Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgs'] gitlab: Specify the project from which to fetch the GitLab merge requests.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 30min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgs']]:
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgs']]]]:
        """
        Filters allow selecting which pull requests to generate for.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgs']]:
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgs']]:
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgs']]:
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Repo name to scan.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.str] repo: Repo name to scan.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "repo", repo)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Gitea API URL to talk to.
        """
        owner: pulumi.Input[_builtins.str]
        """
        Gitea org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Gitea repo name to scan.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Gitea API URL to talk to.
        :param pulumi.Input[_builtins.str] owner: Gitea org or user to scan.
        :param pulumi.Input[_builtins.str] repo: Gitea repo name to scan.
        :param pulumi.Input[_builtins.bool] insecure: Allow insecure tls, for self-signed certificates; default: false.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Gitea API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        GitHub org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        GitHub repo name to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: GitHub org or user to scan.
        :param pulumi.Input[_builtins.str] repo: GitHub repo name to scan.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret with permission to access pull requests.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgsDict(TypedDict):
        project: pulumi.Input[_builtins.str]
        """
        GitLab project to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        pull_request_state: NotRequired[pulumi.Input[_builtins.str]]
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabArgs:
    def __init__(__self__, *,
                 project: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pull_request_state: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] project: GitLab project to scan.
        :param pulumi.Input[_builtins.str] api: The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input[_builtins.str] pull_request_state: additional MRs filter to get only those with a certain state. Default:  "" (all states).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "project", project)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if pull_request_state is not None:
            pulumi.set(__self__, "pull_request_state", pull_request_state)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        GitLab project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="pullRequestState")
    def pull_request_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        return pulumi.get(self, "pull_request_state")

    @pull_request_state.setter
    def pull_request_state(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pull_request_state", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgsDict(TypedDict):
        azure_devops: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict']]
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        bitbucket_cloud: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict']]
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict']]
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        clone_protocol: NotRequired[pulumi.Input[_builtins.str]]
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgsDict']]]]
        """
        Filters for which repos should be considered.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgsDict']]
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgsDict']]
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgsDict']]
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderArgs:
    def __init__(__self__, *,
                 azure_devops: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgs']] = None,
                 bitbucket_cloud: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']] = None,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgs']] = None,
                 clone_protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgs'] azure_devops: Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgs'] bitbucket_cloud: Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgs'] bitbucket_server: Use the Bitbucket Server API (1.0) to scan repos in a project.
        :param pulumi.Input[_builtins.str] clone_protocol: Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgs']]] filters: Filters for which repos should be considered.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgs'] gitea: Gitea mode uses the Gitea API to scan organizations in your instance.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgs'] github: Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgs'] gitlab: Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if azure_devops is not None:
            pulumi.set(__self__, "azure_devops", azure_devops)
        if bitbucket_cloud is not None:
            pulumi.set(__self__, "bitbucket_cloud", bitbucket_cloud)
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if clone_protocol is not None:
            pulumi.set(__self__, "clone_protocol", clone_protocol)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="azureDevops")
    def azure_devops(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgs']]:
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        return pulumi.get(self, "azure_devops")

    @azure_devops.setter
    def azure_devops(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgs']]):
        pulumi.set(self, "azure_devops", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketCloud")
    def bitbucket_cloud(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']]:
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        return pulumi.get(self, "bitbucket_cloud")

    @bitbucket_cloud.setter
    def bitbucket_cloud(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']]):
        pulumi.set(self, "bitbucket_cloud", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgs']]:
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter(name="cloneProtocol")
    def clone_protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        return pulumi.get(self, "clone_protocol")

    @clone_protocol.setter
    def clone_protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "clone_protocol", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgs']]]]:
        """
        Filters for which repos should be considered.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgs']]:
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgs']]:
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgs']]:
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        Azure Devops organization. E.g. "my-organization".
        """
        team_project: pulumi.Input[_builtins.str]
        """
        Azure Devops team project. E.g. "my-team".
        """
        access_token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict']]
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 team_project: pulumi.Input[_builtins.str],
                 access_token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']] = None,
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] organization: Azure Devops organization. E.g. "my-organization".
        :param pulumi.Input[_builtins.str] team_project: Azure Devops team project. E.g. "my-team".
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs'] access_token_ref: The Personal Access Token (PAT) to use when connecting.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "team_project", team_project)
        if access_token_ref is not None:
            pulumi.set(__self__, "access_token_ref", access_token_ref)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops organization. E.g. "my-organization".
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="teamProject")
    def team_project(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops team project. E.g. "my-team".
        """
        return pulumi.get(self, "team_project")

    @team_project.setter
    def team_project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "team_project", value)

    @_builtins.property
    @pulumi.getter(name="accessTokenRef")
    def access_token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]:
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        return pulumi.get(self, "access_token_ref")

    @access_token_ref.setter
    def access_token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]):
        pulumi.set(self, "access_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Bitbucket workspace to scan.
        """
        user: pulumi.Input[_builtins.str]
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        app_password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict']]
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 user: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 app_password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Bitbucket workspace to scan.
        :param pulumi.Input[_builtins.str] user: Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs'] app_password_ref: The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "user", user)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if app_password_ref is not None:
            pulumi.set(__self__, "app_password_ref", app_password_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket workspace to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def user(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        return pulumi.get(self, "user")

    @user.setter
    def user(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="appPasswordRef")
    def app_password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]:
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        return pulumi.get(self, "app_password_ref")

    @app_password_ref.setter
    def app_password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]):
        pulumi.set(self, "app_password_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
        label_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match at least one label.
        """
        paths_do_not_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must not exist.
        """
        paths_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must exist.
        """
        repository_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex for repo names.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None,
                 label_match: Optional[pulumi.Input[_builtins.str]] = None,
                 paths_do_not_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 paths_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 repository_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        :param pulumi.Input[_builtins.str] label_match: A regex which must match at least one label.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_do_not_exists: An array of paths, all of which must not exist.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_exists: An array of paths, all of which must exist.
        :param pulumi.Input[_builtins.str] repository_match: A regex for repo names.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)
        if label_match is not None:
            pulumi.set(__self__, "label_match", label_match)
        if paths_do_not_exists is not None:
            pulumi.set(__self__, "paths_do_not_exists", paths_do_not_exists)
        if paths_exists is not None:
            pulumi.set(__self__, "paths_exists", paths_exists)
        if repository_match is not None:
            pulumi.set(__self__, "repository_match", repository_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)

    @_builtins.property
    @pulumi.getter(name="labelMatch")
    def label_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match at least one label.
        """
        return pulumi.get(self, "label_match")

    @label_match.setter
    def label_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "label_match", value)

    @_builtins.property
    @pulumi.getter(name="pathsDoNotExists")
    def paths_do_not_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must not exist.
        """
        return pulumi.get(self, "paths_do_not_exists")

    @paths_do_not_exists.setter
    def paths_do_not_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_do_not_exists", value)

    @_builtins.property
    @pulumi.getter(name="pathsExists")
    def paths_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must exist.
        """
        return pulumi.get(self, "paths_exists")

    @paths_exists.setter
    def paths_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_exists", value)

    @_builtins.property
    @pulumi.getter(name="repositoryMatch")
    def repository_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex for repo names.
        """
        return pulumi.get(self, "repository_match")

    @repository_match.setter
    def repository_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Gitea organization or user to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow self-signed TLS / Certificates.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Gitea organization or user to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        :param pulumi.Input[_builtins.bool] insecure: Allow self-signed TLS / Certificates.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea organization or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow self-signed TLS / Certificates.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        GitHub org to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] organization: GitHub org to scan.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "organization", organization)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org to scan.
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgsDict(TypedDict):
        group: pulumi.Input[_builtins.str]
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitlab API URL to talk to.
        """
        ca_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict']]
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        include_subgroups: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabArgs:
    def __init__(__self__, *,
                 group: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 ca_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']] = None,
                 include_subgroups: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] group: Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitlab API URL to talk to.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgs'] ca_ref: Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        :param pulumi.Input[_builtins.bool] include_subgroups: Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "group", group)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if ca_ref is not None:
            pulumi.set(__self__, "ca_ref", ca_ref)
        if include_subgroups is not None:
            pulumi.set(__self__, "include_subgroups", include_subgroups)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def group(self) -> pulumi.Input[_builtins.str]:
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitlab API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="caRef")
    def ca_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']]:
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        return pulumi.get(self, "ca_ref")

    @ca_ref.setter
    def ca_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']]):
        pulumi.set(self, "ca_ref", value)

    @_builtins.property
    @pulumi.getter(name="includeSubgroups")
    def include_subgroups(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        return pulumi.get(self, "include_subgroups")

    @include_subgroups.setter
    def include_subgroups(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "include_subgroups", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict(TypedDict):
        config_map_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `ConfigMap`.
        """
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabCaRefArgs:
    def __init__(__self__, *,
                 config_map_name: pulumi.Input[_builtins.str],
                 key: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] config_map_name: Name of Kubernetes `ConfigMap`.
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `ConfigMap`.
        """
        pulumi.set(__self__, "config_map_name", config_map_name)
        pulumi.set(__self__, "key", key)

    @_builtins.property
    @pulumi.getter(name="configMapName")
    def config_map_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "config_map_name")

    @config_map_name.setter
    def config_map_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_name", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeGeneratorSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgsDict(TypedDict):
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict']]
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgsDict']]]]
        """
        Filters allow selecting which pull requests to generate for.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgsDict']]
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgsDict']]
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgsDict']]
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestArgs:
    def __init__(__self__, *,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgs'] bitbucket_server: Fetch pull requests from a repo hosted on a Bitbucket Server.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgs']]] filters: Filters allow selecting which pull requests to generate for.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgs'] gitea: Specify the repository from which to fetch the Gitea Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgs'] github: Specify the repository from which to fetch the GitHub Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgs'] gitlab: Specify the project from which to fetch the GitLab merge requests.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 30min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']]:
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgs']]]]:
        """
        Filters allow selecting which pull requests to generate for.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgs']]:
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgs']]:
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgs']]:
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Repo name to scan.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.str] repo: Repo name to scan.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "repo", repo)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Gitea API URL to talk to.
        """
        owner: pulumi.Input[_builtins.str]
        """
        Gitea org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Gitea repo name to scan.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Gitea API URL to talk to.
        :param pulumi.Input[_builtins.str] owner: Gitea org or user to scan.
        :param pulumi.Input[_builtins.str] repo: Gitea repo name to scan.
        :param pulumi.Input[_builtins.bool] insecure: Allow insecure tls, for self-signed certificates; default: false.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Gitea API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        GitHub org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        GitHub repo name to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: GitHub org or user to scan.
        :param pulumi.Input[_builtins.str] repo: GitHub repo name to scan.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret with permission to access pull requests.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgsDict(TypedDict):
        project: pulumi.Input[_builtins.str]
        """
        GitLab project to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        pull_request_state: NotRequired[pulumi.Input[_builtins.str]]
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabArgs:
    def __init__(__self__, *,
                 project: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pull_request_state: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] project: GitLab project to scan.
        :param pulumi.Input[_builtins.str] api: The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input[_builtins.str] pull_request_state: additional MRs filter to get only those with a certain state. Default:  "" (all states).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "project", project)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if pull_request_state is not None:
            pulumi.set(__self__, "pull_request_state", pull_request_state)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        GitLab project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="pullRequestState")
    def pull_request_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        return pulumi.get(self, "pull_request_state")

    @pull_request_state.setter
    def pull_request_state(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pull_request_state", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgsDict(TypedDict):
        azure_devops: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict']]
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        bitbucket_cloud: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict']]
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict']]
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        clone_protocol: NotRequired[pulumi.Input[_builtins.str]]
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgsDict']]]]
        """
        Filters for which repos should be considered.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgsDict']]
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgsDict']]
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgsDict']]
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderArgs:
    def __init__(__self__, *,
                 azure_devops: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']] = None,
                 bitbucket_cloud: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']] = None,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']] = None,
                 clone_protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgs'] azure_devops: Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs'] bitbucket_cloud: Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgs'] bitbucket_server: Use the Bitbucket Server API (1.0) to scan repos in a project.
        :param pulumi.Input[_builtins.str] clone_protocol: Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgs']]] filters: Filters for which repos should be considered.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgs'] gitea: Gitea mode uses the Gitea API to scan organizations in your instance.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgs'] github: Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgs'] gitlab: Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if azure_devops is not None:
            pulumi.set(__self__, "azure_devops", azure_devops)
        if bitbucket_cloud is not None:
            pulumi.set(__self__, "bitbucket_cloud", bitbucket_cloud)
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if clone_protocol is not None:
            pulumi.set(__self__, "clone_protocol", clone_protocol)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="azureDevops")
    def azure_devops(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']]:
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        return pulumi.get(self, "azure_devops")

    @azure_devops.setter
    def azure_devops(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']]):
        pulumi.set(self, "azure_devops", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketCloud")
    def bitbucket_cloud(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']]:
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        return pulumi.get(self, "bitbucket_cloud")

    @bitbucket_cloud.setter
    def bitbucket_cloud(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']]):
        pulumi.set(self, "bitbucket_cloud", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']]:
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter(name="cloneProtocol")
    def clone_protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        return pulumi.get(self, "clone_protocol")

    @clone_protocol.setter
    def clone_protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "clone_protocol", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgs']]]]:
        """
        Filters for which repos should be considered.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgs']]:
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgs']]:
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgs']]:
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        Azure Devops organization. E.g. "my-organization".
        """
        team_project: pulumi.Input[_builtins.str]
        """
        Azure Devops team project. E.g. "my-team".
        """
        access_token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict']]
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 team_project: pulumi.Input[_builtins.str],
                 access_token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']] = None,
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] organization: Azure Devops organization. E.g. "my-organization".
        :param pulumi.Input[_builtins.str] team_project: Azure Devops team project. E.g. "my-team".
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs'] access_token_ref: The Personal Access Token (PAT) to use when connecting.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "team_project", team_project)
        if access_token_ref is not None:
            pulumi.set(__self__, "access_token_ref", access_token_ref)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops organization. E.g. "my-organization".
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="teamProject")
    def team_project(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops team project. E.g. "my-team".
        """
        return pulumi.get(self, "team_project")

    @team_project.setter
    def team_project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "team_project", value)

    @_builtins.property
    @pulumi.getter(name="accessTokenRef")
    def access_token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]:
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        return pulumi.get(self, "access_token_ref")

    @access_token_ref.setter
    def access_token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]):
        pulumi.set(self, "access_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Bitbucket workspace to scan.
        """
        user: pulumi.Input[_builtins.str]
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        app_password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict']]
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 user: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 app_password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Bitbucket workspace to scan.
        :param pulumi.Input[_builtins.str] user: Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs'] app_password_ref: The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "user", user)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if app_password_ref is not None:
            pulumi.set(__self__, "app_password_ref", app_password_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket workspace to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def user(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        return pulumi.get(self, "user")

    @user.setter
    def user(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="appPasswordRef")
    def app_password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]:
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        return pulumi.get(self, "app_password_ref")

    @app_password_ref.setter
    def app_password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]):
        pulumi.set(self, "app_password_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
        label_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match at least one label.
        """
        paths_do_not_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must not exist.
        """
        paths_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must exist.
        """
        repository_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex for repo names.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None,
                 label_match: Optional[pulumi.Input[_builtins.str]] = None,
                 paths_do_not_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 paths_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 repository_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        :param pulumi.Input[_builtins.str] label_match: A regex which must match at least one label.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_do_not_exists: An array of paths, all of which must not exist.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_exists: An array of paths, all of which must exist.
        :param pulumi.Input[_builtins.str] repository_match: A regex for repo names.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)
        if label_match is not None:
            pulumi.set(__self__, "label_match", label_match)
        if paths_do_not_exists is not None:
            pulumi.set(__self__, "paths_do_not_exists", paths_do_not_exists)
        if paths_exists is not None:
            pulumi.set(__self__, "paths_exists", paths_exists)
        if repository_match is not None:
            pulumi.set(__self__, "repository_match", repository_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)

    @_builtins.property
    @pulumi.getter(name="labelMatch")
    def label_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match at least one label.
        """
        return pulumi.get(self, "label_match")

    @label_match.setter
    def label_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "label_match", value)

    @_builtins.property
    @pulumi.getter(name="pathsDoNotExists")
    def paths_do_not_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must not exist.
        """
        return pulumi.get(self, "paths_do_not_exists")

    @paths_do_not_exists.setter
    def paths_do_not_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_do_not_exists", value)

    @_builtins.property
    @pulumi.getter(name="pathsExists")
    def paths_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must exist.
        """
        return pulumi.get(self, "paths_exists")

    @paths_exists.setter
    def paths_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_exists", value)

    @_builtins.property
    @pulumi.getter(name="repositoryMatch")
    def repository_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex for repo names.
        """
        return pulumi.get(self, "repository_match")

    @repository_match.setter
    def repository_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Gitea organization or user to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow self-signed TLS / Certificates.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Gitea organization or user to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        :param pulumi.Input[_builtins.bool] insecure: Allow self-signed TLS / Certificates.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea organization or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow self-signed TLS / Certificates.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        GitHub org to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] organization: GitHub org to scan.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "organization", organization)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org to scan.
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgsDict(TypedDict):
        group: pulumi.Input[_builtins.str]
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitlab API URL to talk to.
        """
        ca_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict']]
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        include_subgroups: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabArgs:
    def __init__(__self__, *,
                 group: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 ca_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']] = None,
                 include_subgroups: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] group: Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitlab API URL to talk to.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs'] ca_ref: Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        :param pulumi.Input[_builtins.bool] include_subgroups: Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "group", group)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if ca_ref is not None:
            pulumi.set(__self__, "ca_ref", ca_ref)
        if include_subgroups is not None:
            pulumi.set(__self__, "include_subgroups", include_subgroups)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def group(self) -> pulumi.Input[_builtins.str]:
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitlab API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="caRef")
    def ca_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']]:
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        return pulumi.get(self, "ca_ref")

    @ca_ref.setter
    def ca_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']]):
        pulumi.set(self, "ca_ref", value)

    @_builtins.property
    @pulumi.getter(name="includeSubgroups")
    def include_subgroups(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        return pulumi.get(self, "include_subgroups")

    @include_subgroups.setter
    def include_subgroups(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "include_subgroups", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict(TypedDict):
        config_map_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `ConfigMap`.
        """
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs:
    def __init__(__self__, *,
                 config_map_name: pulumi.Input[_builtins.str],
                 key: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] config_map_name: Name of Kubernetes `ConfigMap`.
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `ConfigMap`.
        """
        pulumi.set(__self__, "config_map_name", config_map_name)
        pulumi.set(__self__, "key", key)

    @_builtins.property
    @pulumi.getter(name="configMapName")
    def config_map_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "config_map_name")

    @config_map_name.setter
    def config_map_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_name", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixGeneratorSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeArgsDict(TypedDict):
        generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgsDict']]]
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        """
        merge_keys: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        Keys to merge into resulting parameter set.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeArgs:
    def __init__(__self__, *,
                 generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgs']]],
                 merge_keys: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgs']]] generators: Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] merge_keys: Keys to merge into resulting parameter set.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "generators", generators)
        pulumi.set(__self__, "merge_keys", merge_keys)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def generators(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgs']]]:
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        """
        return pulumi.get(self, "generators")

    @generators.setter
    def generators(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgs']]]):
        pulumi.set(self, "generators", value)

    @_builtins.property
    @pulumi.getter(name="mergeKeys")
    def merge_keys(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        Keys to merge into resulting parameter set.
        """
        return pulumi.get(self, "merge_keys")

    @merge_keys.setter
    def merge_keys(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "merge_keys", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgsDict(TypedDict):
        cluster_decision_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgsDict']]]]
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgsDict']]]]
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        gits: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgsDict']]]]
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgsDict']]]]
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        matrices: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgsDict']]]]
        """
        [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        """
        merges: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgsDict']]]]
        """
        [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        """
        pull_requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgsDict']]]]
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        scm_providers: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgsDict']]]]
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgsDict']]
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorArgs:
    def __init__(__self__, *,
                 cluster_decision_resources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgs']]]] = None,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgs']]]] = None,
                 gits: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgs']]]] = None,
                 lists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgs']]]] = None,
                 matrices: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgs']]]] = None,
                 merges: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgs']]]] = None,
                 pull_requests: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgs']]]] = None,
                 scm_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgs']]]] = None,
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgs']]] cluster_decision_resources: The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgs']]] clusters: The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgs']]] gits: [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgs']]] lists: [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgs']]] matrices: [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgs']]] merges: [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgs']]] pull_requests: [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgs']]] scm_providers: [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgs'] selector: The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        if cluster_decision_resources is not None:
            pulumi.set(__self__, "cluster_decision_resources", cluster_decision_resources)
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if gits is not None:
            pulumi.set(__self__, "gits", gits)
        if lists is not None:
            pulumi.set(__self__, "lists", lists)
        if matrices is not None:
            pulumi.set(__self__, "matrices", matrices)
        if merges is not None:
            pulumi.set(__self__, "merges", merges)
        if pull_requests is not None:
            pulumi.set(__self__, "pull_requests", pull_requests)
        if scm_providers is not None:
            pulumi.set(__self__, "scm_providers", scm_providers)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)

    @_builtins.property
    @pulumi.getter(name="clusterDecisionResources")
    def cluster_decision_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgs']]]]:
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        return pulumi.get(self, "cluster_decision_resources")

    @cluster_decision_resources.setter
    def cluster_decision_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgs']]]]):
        pulumi.set(self, "cluster_decision_resources", value)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgs']]]]:
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgs']]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def gits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgs']]]]:
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        return pulumi.get(self, "gits")

    @gits.setter
    def gits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgs']]]]):
        pulumi.set(self, "gits", value)

    @_builtins.property
    @pulumi.getter
    def lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgs']]]]:
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        return pulumi.get(self, "lists")

    @lists.setter
    def lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgs']]]]):
        pulumi.set(self, "lists", value)

    @_builtins.property
    @pulumi.getter
    def matrices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgs']]]]:
        """
        [Matrix generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/) combine the parameters generated by two child generators, iterating through every combination of each generator's generated parameters. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Matrix/#restrictions) regarding their usage - particularly regarding nesting matrix generators.
        """
        return pulumi.get(self, "matrices")

    @matrices.setter
    def matrices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgs']]]]):
        pulumi.set(self, "matrices", value)

    @_builtins.property
    @pulumi.getter
    def merges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgs']]]]:
        """
        [Merge generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/) combine parameters produced by the base (first) generator with matching parameter sets produced by subsequent generators. Take note of the [restrictions](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Merge/#restrictions) regarding their usage - particularly regarding nesting merge generators.
        """
        return pulumi.get(self, "merges")

    @merges.setter
    def merges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgs']]]]):
        pulumi.set(self, "merges", value)

    @_builtins.property
    @pulumi.getter(name="pullRequests")
    def pull_requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgs']]]]:
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        return pulumi.get(self, "pull_requests")

    @pull_requests.setter
    def pull_requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgs']]]]):
        pulumi.set(self, "pull_requests", value)

    @_builtins.property
    @pulumi.getter(name="scmProviders")
    def scm_providers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgs']]]]:
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        return pulumi.get(self, "scm_providers")

    @scm_providers.setter
    def scm_providers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgs']]]]):
        pulumi.set(self, "scm_providers", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgs']]:
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgs']]):
        pulumi.set(self, "selector", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgsDict']]
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgs']] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] enabled: Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgs'] selector: Label selector used to narrow the scope of targeted clusters.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        pulumi.set(__self__, "enabled", enabled)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgs']]:
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgs']]):
        pulumi.set(self, "selector", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgsDict(TypedDict):
        config_map_ref: pulumi.Input[_builtins.str]
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        label_selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict']]
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceArgs:
    def __init__(__self__, *,
                 config_map_ref: pulumi.Input[_builtins.str],
                 label_selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] config_map_ref: ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs'] label_selector: Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        :param pulumi.Input[_builtins.str] name: Resource name of the kind, group and version, defined in the `config_map_ref`.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        pulumi.set(__self__, "config_map_ref", config_map_ref)
        if label_selector is not None:
            pulumi.set(__self__, "label_selector", label_selector)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter(name="configMapRef")
    def config_map_ref(self) -> pulumi.Input[_builtins.str]:
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        return pulumi.get(self, "config_map_ref")

    @config_map_ref.setter
    def config_map_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_ref", value)

    @_builtins.property
    @pulumi.getter(name="labelSelector")
    def label_selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']]:
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        return pulumi.get(self, "label_selector")

    @label_selector.setter
    def label_selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']]):
        pulumi.set(self, "label_selector", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository to use.
        """
        directories: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgsDict']]]]
        """
        List of directories in the source repository to use when template the Application..
        """
        files: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgsDict']]]]
        """
        List of files in the source repository to use when template the Application.
        """
        path_param_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix for all path-related parameter names.
        """
        revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source repository to use.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 directories: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgs']]]] = None,
                 files: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgs']]]] = None,
                 path_param_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 revision: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository to use.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgs']]] directories: List of directories in the source repository to use when template the Application..
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgs']]] files: List of files in the source repository to use when template the Application.
        :param pulumi.Input[_builtins.str] path_param_prefix: Prefix for all path-related parameter names.
        :param pulumi.Input[_builtins.str] revision: Revision of the source repository to use.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        if directories is not None:
            pulumi.set(__self__, "directories", directories)
        if files is not None:
            pulumi.set(__self__, "files", files)
        if path_param_prefix is not None:
            pulumi.set(__self__, "path_param_prefix", path_param_prefix)
        if revision is not None:
            pulumi.set(__self__, "revision", revision)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository to use.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter
    def directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgs']]]]:
        """
        List of directories in the source repository to use when template the Application..
        """
        return pulumi.get(self, "directories")

    @directories.setter
    def directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgs']]]]):
        pulumi.set(self, "directories", value)

    @_builtins.property
    @pulumi.getter
    def files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgs']]]]:
        """
        List of files in the source repository to use when template the Application.
        """
        return pulumi.get(self, "files")

    @files.setter
    def files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgs']]]]):
        pulumi.set(self, "files", value)

    @_builtins.property
    @pulumi.getter(name="pathParamPrefix")
    def path_param_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix for all path-related parameter names.
        """
        return pulumi.get(self, "path_param_prefix")

    @path_param_prefix.setter
    def path_param_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path_param_prefix", value)

    @_builtins.property
    @pulumi.getter
    def revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source repository to use.
        """
        return pulumi.get(self, "revision")

    @revision.setter
    def revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path in the repository.
        """
        exclude: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitDirectoryArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str],
                 exclude: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] path: Path in the repository.
        :param pulumi.Input[_builtins.bool] exclude: Flag indicating whether or not the directory should be excluded when templating.
        """
        pulumi.set(__self__, "path", path)
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "exclude", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path to the file in the repository.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitFileArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] path: Path to the file in the repository.
        """
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgsDict(TypedDict):
        elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]
        """
        List of key/value pairs to pass as parameters into the template.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListArgs:
    def __init__(__self__, *,
                 elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] elements: List of key/value pairs to pass as parameters into the template.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "elements", elements)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def elements(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]:
        """
        List of key/value pairs to pass as parameters into the template.
        """
        return pulumi.get(self, "elements")

    @elements.setter
    def elements(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]):
        pulumi.set(self, "elements", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgsDict(TypedDict):
        generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgsDict']]]
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixArgs:
    def __init__(__self__, *,
                 generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgs']]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgs']]] generators: Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "generators", generators)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def generators(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgs']]]:
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent matrix generator into the template fields of the ApplicationSet resource.
        """
        return pulumi.get(self, "generators")

    @generators.setter
    def generators(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgs']]]):
        pulumi.set(self, "generators", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgsDict(TypedDict):
        cluster_decision_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgsDict']]]]
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgsDict']]]]
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        gits: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgsDict']]]]
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgsDict']]]]
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        pull_requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgsDict']]]]
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        scm_providers: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgsDict']]]]
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgsDict']]
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorArgs:
    def __init__(__self__, *,
                 cluster_decision_resources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]] = None,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgs']]]] = None,
                 gits: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgs']]]] = None,
                 lists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgs']]]] = None,
                 pull_requests: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgs']]]] = None,
                 scm_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgs']]]] = None,
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgs']]] cluster_decision_resources: The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgs']]] clusters: The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgs']]] gits: [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgs']]] lists: [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgs']]] pull_requests: [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgs']]] scm_providers: [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgs'] selector: The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        if cluster_decision_resources is not None:
            pulumi.set(__self__, "cluster_decision_resources", cluster_decision_resources)
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if gits is not None:
            pulumi.set(__self__, "gits", gits)
        if lists is not None:
            pulumi.set(__self__, "lists", lists)
        if pull_requests is not None:
            pulumi.set(__self__, "pull_requests", pull_requests)
        if scm_providers is not None:
            pulumi.set(__self__, "scm_providers", scm_providers)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)

    @_builtins.property
    @pulumi.getter(name="clusterDecisionResources")
    def cluster_decision_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]]:
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        return pulumi.get(self, "cluster_decision_resources")

    @cluster_decision_resources.setter
    def cluster_decision_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgs']]]]):
        pulumi.set(self, "cluster_decision_resources", value)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgs']]]]:
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgs']]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def gits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgs']]]]:
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        return pulumi.get(self, "gits")

    @gits.setter
    def gits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgs']]]]):
        pulumi.set(self, "gits", value)

    @_builtins.property
    @pulumi.getter
    def lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgs']]]]:
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        return pulumi.get(self, "lists")

    @lists.setter
    def lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgs']]]]):
        pulumi.set(self, "lists", value)

    @_builtins.property
    @pulumi.getter(name="pullRequests")
    def pull_requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgs']]]]:
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        return pulumi.get(self, "pull_requests")

    @pull_requests.setter
    def pull_requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgs']]]]):
        pulumi.set(self, "pull_requests", value)

    @_builtins.property
    @pulumi.getter(name="scmProviders")
    def scm_providers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgs']]]]:
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        return pulumi.get(self, "scm_providers")

    @scm_providers.setter
    def scm_providers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgs']]]]):
        pulumi.set(self, "scm_providers", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgs']]:
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgs']]):
        pulumi.set(self, "selector", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgsDict']]
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgs']] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] enabled: Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgs'] selector: Label selector used to narrow the scope of targeted clusters.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        pulumi.set(__self__, "enabled", enabled)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgs']]:
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgs']]):
        pulumi.set(self, "selector", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgsDict(TypedDict):
        config_map_ref: pulumi.Input[_builtins.str]
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        label_selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict']]
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceArgs:
    def __init__(__self__, *,
                 config_map_ref: pulumi.Input[_builtins.str],
                 label_selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] config_map_ref: ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs'] label_selector: Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        :param pulumi.Input[_builtins.str] name: Resource name of the kind, group and version, defined in the `config_map_ref`.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        pulumi.set(__self__, "config_map_ref", config_map_ref)
        if label_selector is not None:
            pulumi.set(__self__, "label_selector", label_selector)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter(name="configMapRef")
    def config_map_ref(self) -> pulumi.Input[_builtins.str]:
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        return pulumi.get(self, "config_map_ref")

    @config_map_ref.setter
    def config_map_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_ref", value)

    @_builtins.property
    @pulumi.getter(name="labelSelector")
    def label_selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']]:
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        return pulumi.get(self, "label_selector")

    @label_selector.setter
    def label_selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs']]):
        pulumi.set(self, "label_selector", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository to use.
        """
        directories: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgsDict']]]]
        """
        List of directories in the source repository to use when template the Application..
        """
        files: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgsDict']]]]
        """
        List of files in the source repository to use when template the Application.
        """
        path_param_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix for all path-related parameter names.
        """
        revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source repository to use.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 directories: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgs']]]] = None,
                 files: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgs']]]] = None,
                 path_param_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 revision: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository to use.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgs']]] directories: List of directories in the source repository to use when template the Application..
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgs']]] files: List of files in the source repository to use when template the Application.
        :param pulumi.Input[_builtins.str] path_param_prefix: Prefix for all path-related parameter names.
        :param pulumi.Input[_builtins.str] revision: Revision of the source repository to use.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        if directories is not None:
            pulumi.set(__self__, "directories", directories)
        if files is not None:
            pulumi.set(__self__, "files", files)
        if path_param_prefix is not None:
            pulumi.set(__self__, "path_param_prefix", path_param_prefix)
        if revision is not None:
            pulumi.set(__self__, "revision", revision)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository to use.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter
    def directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgs']]]]:
        """
        List of directories in the source repository to use when template the Application..
        """
        return pulumi.get(self, "directories")

    @directories.setter
    def directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgs']]]]):
        pulumi.set(self, "directories", value)

    @_builtins.property
    @pulumi.getter
    def files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgs']]]]:
        """
        List of files in the source repository to use when template the Application.
        """
        return pulumi.get(self, "files")

    @files.setter
    def files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgs']]]]):
        pulumi.set(self, "files", value)

    @_builtins.property
    @pulumi.getter(name="pathParamPrefix")
    def path_param_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix for all path-related parameter names.
        """
        return pulumi.get(self, "path_param_prefix")

    @path_param_prefix.setter
    def path_param_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path_param_prefix", value)

    @_builtins.property
    @pulumi.getter
    def revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source repository to use.
        """
        return pulumi.get(self, "revision")

    @revision.setter
    def revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path in the repository.
        """
        exclude: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitDirectoryArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str],
                 exclude: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] path: Path in the repository.
        :param pulumi.Input[_builtins.bool] exclude: Flag indicating whether or not the directory should be excluded when templating.
        """
        pulumi.set(__self__, "path", path)
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "exclude", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path to the file in the repository.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitFileArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] path: Path to the file in the repository.
        """
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgsDict(TypedDict):
        elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]
        """
        List of key/value pairs to pass as parameters into the template.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListArgs:
    def __init__(__self__, *,
                 elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] elements: List of key/value pairs to pass as parameters into the template.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "elements", elements)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def elements(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]:
        """
        List of key/value pairs to pass as parameters into the template.
        """
        return pulumi.get(self, "elements")

    @elements.setter
    def elements(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]):
        pulumi.set(self, "elements", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgsDict(TypedDict):
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict']]
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgsDict']]]]
        """
        Filters allow selecting which pull requests to generate for.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgsDict']]
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgsDict']]
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgsDict']]
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestArgs:
    def __init__(__self__, *,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgs'] bitbucket_server: Fetch pull requests from a repo hosted on a Bitbucket Server.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgs']]] filters: Filters allow selecting which pull requests to generate for.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgs'] gitea: Specify the repository from which to fetch the Gitea Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgs'] github: Specify the repository from which to fetch the GitHub Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgs'] gitlab: Specify the project from which to fetch the GitLab merge requests.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 30min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']]:
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgs']]]]:
        """
        Filters allow selecting which pull requests to generate for.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgs']]:
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgs']]:
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgs']]:
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Repo name to scan.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.str] repo: Repo name to scan.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "repo", repo)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Gitea API URL to talk to.
        """
        owner: pulumi.Input[_builtins.str]
        """
        Gitea org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Gitea repo name to scan.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Gitea API URL to talk to.
        :param pulumi.Input[_builtins.str] owner: Gitea org or user to scan.
        :param pulumi.Input[_builtins.str] repo: Gitea repo name to scan.
        :param pulumi.Input[_builtins.bool] insecure: Allow insecure tls, for self-signed certificates; default: false.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Gitea API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        GitHub org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        GitHub repo name to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: GitHub org or user to scan.
        :param pulumi.Input[_builtins.str] repo: GitHub repo name to scan.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret with permission to access pull requests.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgsDict(TypedDict):
        project: pulumi.Input[_builtins.str]
        """
        GitLab project to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        pull_request_state: NotRequired[pulumi.Input[_builtins.str]]
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabArgs:
    def __init__(__self__, *,
                 project: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pull_request_state: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] project: GitLab project to scan.
        :param pulumi.Input[_builtins.str] api: The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input[_builtins.str] pull_request_state: additional MRs filter to get only those with a certain state. Default:  "" (all states).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "project", project)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if pull_request_state is not None:
            pulumi.set(__self__, "pull_request_state", pull_request_state)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        GitLab project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="pullRequestState")
    def pull_request_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        return pulumi.get(self, "pull_request_state")

    @pull_request_state.setter
    def pull_request_state(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pull_request_state", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgsDict(TypedDict):
        azure_devops: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict']]
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        bitbucket_cloud: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict']]
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict']]
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        clone_protocol: NotRequired[pulumi.Input[_builtins.str]]
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgsDict']]]]
        """
        Filters for which repos should be considered.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgsDict']]
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgsDict']]
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgsDict']]
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderArgs:
    def __init__(__self__, *,
                 azure_devops: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']] = None,
                 bitbucket_cloud: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']] = None,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']] = None,
                 clone_protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgs'] azure_devops: Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs'] bitbucket_cloud: Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgs'] bitbucket_server: Use the Bitbucket Server API (1.0) to scan repos in a project.
        :param pulumi.Input[_builtins.str] clone_protocol: Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgs']]] filters: Filters for which repos should be considered.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgs'] gitea: Gitea mode uses the Gitea API to scan organizations in your instance.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgs'] github: Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgs'] gitlab: Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if azure_devops is not None:
            pulumi.set(__self__, "azure_devops", azure_devops)
        if bitbucket_cloud is not None:
            pulumi.set(__self__, "bitbucket_cloud", bitbucket_cloud)
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if clone_protocol is not None:
            pulumi.set(__self__, "clone_protocol", clone_protocol)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="azureDevops")
    def azure_devops(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']]:
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        return pulumi.get(self, "azure_devops")

    @azure_devops.setter
    def azure_devops(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgs']]):
        pulumi.set(self, "azure_devops", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketCloud")
    def bitbucket_cloud(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']]:
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        return pulumi.get(self, "bitbucket_cloud")

    @bitbucket_cloud.setter
    def bitbucket_cloud(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs']]):
        pulumi.set(self, "bitbucket_cloud", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']]:
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter(name="cloneProtocol")
    def clone_protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        return pulumi.get(self, "clone_protocol")

    @clone_protocol.setter
    def clone_protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "clone_protocol", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgs']]]]:
        """
        Filters for which repos should be considered.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgs']]:
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgs']]:
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgs']]:
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        Azure Devops organization. E.g. "my-organization".
        """
        team_project: pulumi.Input[_builtins.str]
        """
        Azure Devops team project. E.g. "my-team".
        """
        access_token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict']]
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 team_project: pulumi.Input[_builtins.str],
                 access_token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']] = None,
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] organization: Azure Devops organization. E.g. "my-organization".
        :param pulumi.Input[_builtins.str] team_project: Azure Devops team project. E.g. "my-team".
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs'] access_token_ref: The Personal Access Token (PAT) to use when connecting.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "team_project", team_project)
        if access_token_ref is not None:
            pulumi.set(__self__, "access_token_ref", access_token_ref)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops organization. E.g. "my-organization".
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="teamProject")
    def team_project(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops team project. E.g. "my-team".
        """
        return pulumi.get(self, "team_project")

    @team_project.setter
    def team_project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "team_project", value)

    @_builtins.property
    @pulumi.getter(name="accessTokenRef")
    def access_token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]:
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        return pulumi.get(self, "access_token_ref")

    @access_token_ref.setter
    def access_token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]):
        pulumi.set(self, "access_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderAzureDevopsAccessTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Bitbucket workspace to scan.
        """
        user: pulumi.Input[_builtins.str]
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        app_password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict']]
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 user: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 app_password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Bitbucket workspace to scan.
        :param pulumi.Input[_builtins.str] user: Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs'] app_password_ref: The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "user", user)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if app_password_ref is not None:
            pulumi.set(__self__, "app_password_ref", app_password_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket workspace to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def user(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        return pulumi.get(self, "user")

    @user.setter
    def user(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="appPasswordRef")
    def app_password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]:
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        return pulumi.get(self, "app_password_ref")

    @app_password_ref.setter
    def app_password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]):
        pulumi.set(self, "app_password_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketCloudAppPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
        label_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match at least one label.
        """
        paths_do_not_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must not exist.
        """
        paths_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must exist.
        """
        repository_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex for repo names.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None,
                 label_match: Optional[pulumi.Input[_builtins.str]] = None,
                 paths_do_not_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 paths_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 repository_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        :param pulumi.Input[_builtins.str] label_match: A regex which must match at least one label.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_do_not_exists: An array of paths, all of which must not exist.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_exists: An array of paths, all of which must exist.
        :param pulumi.Input[_builtins.str] repository_match: A regex for repo names.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)
        if label_match is not None:
            pulumi.set(__self__, "label_match", label_match)
        if paths_do_not_exists is not None:
            pulumi.set(__self__, "paths_do_not_exists", paths_do_not_exists)
        if paths_exists is not None:
            pulumi.set(__self__, "paths_exists", paths_exists)
        if repository_match is not None:
            pulumi.set(__self__, "repository_match", repository_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)

    @_builtins.property
    @pulumi.getter(name="labelMatch")
    def label_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match at least one label.
        """
        return pulumi.get(self, "label_match")

    @label_match.setter
    def label_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "label_match", value)

    @_builtins.property
    @pulumi.getter(name="pathsDoNotExists")
    def paths_do_not_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must not exist.
        """
        return pulumi.get(self, "paths_do_not_exists")

    @paths_do_not_exists.setter
    def paths_do_not_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_do_not_exists", value)

    @_builtins.property
    @pulumi.getter(name="pathsExists")
    def paths_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must exist.
        """
        return pulumi.get(self, "paths_exists")

    @paths_exists.setter
    def paths_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_exists", value)

    @_builtins.property
    @pulumi.getter(name="repositoryMatch")
    def repository_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex for repo names.
        """
        return pulumi.get(self, "repository_match")

    @repository_match.setter
    def repository_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Gitea organization or user to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow self-signed TLS / Certificates.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Gitea organization or user to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        :param pulumi.Input[_builtins.bool] insecure: Allow self-signed TLS / Certificates.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea organization or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow self-signed TLS / Certificates.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        GitHub org to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] organization: GitHub org to scan.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "organization", organization)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org to scan.
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgsDict(TypedDict):
        group: pulumi.Input[_builtins.str]
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitlab API URL to talk to.
        """
        ca_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict']]
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        include_subgroups: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabArgs:
    def __init__(__self__, *,
                 group: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 ca_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']] = None,
                 include_subgroups: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] group: Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitlab API URL to talk to.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs'] ca_ref: Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        :param pulumi.Input[_builtins.bool] include_subgroups: Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "group", group)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if ca_ref is not None:
            pulumi.set(__self__, "ca_ref", ca_ref)
        if include_subgroups is not None:
            pulumi.set(__self__, "include_subgroups", include_subgroups)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def group(self) -> pulumi.Input[_builtins.str]:
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitlab API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="caRef")
    def ca_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']]:
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        return pulumi.get(self, "ca_ref")

    @ca_ref.setter
    def ca_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs']]):
        pulumi.set(self, "ca_ref", value)

    @_builtins.property
    @pulumi.getter(name="includeSubgroups")
    def include_subgroups(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        return pulumi.get(self, "include_subgroups")

    @include_subgroups.setter
    def include_subgroups(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "include_subgroups", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict(TypedDict):
        config_map_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `ConfigMap`.
        """
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabCaRefArgs:
    def __init__(__self__, *,
                 config_map_name: pulumi.Input[_builtins.str],
                 key: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] config_map_name: Name of Kubernetes `ConfigMap`.
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `ConfigMap`.
        """
        pulumi.set(__self__, "config_map_name", config_map_name)
        pulumi.set(__self__, "key", key)

    @_builtins.property
    @pulumi.getter(name="configMapName")
    def config_map_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "config_map_name")

    @config_map_name.setter
    def config_map_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_name", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixGeneratorSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMatrixTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgsDict(TypedDict):
        generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgsDict']]]
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        """
        merge_keys: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        Keys to merge into resulting parameter set.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeArgs:
    def __init__(__self__, *,
                 generators: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgs']]],
                 merge_keys: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgs']]] generators: Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] merge_keys: Keys to merge into resulting parameter set.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "generators", generators)
        pulumi.set(__self__, "merge_keys", merge_keys)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def generators(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgs']]]:
        """
        Child generator. Generators are responsible for generating parameters, which are then combined by the parent merge generator.
        """
        return pulumi.get(self, "generators")

    @generators.setter
    def generators(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgs']]]):
        pulumi.set(self, "generators", value)

    @_builtins.property
    @pulumi.getter(name="mergeKeys")
    def merge_keys(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        Keys to merge into resulting parameter set.
        """
        return pulumi.get(self, "merge_keys")

    @merge_keys.setter
    def merge_keys(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "merge_keys", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgsDict(TypedDict):
        cluster_decision_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgsDict']]]]
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgsDict']]]]
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        gits: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgsDict']]]]
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgsDict']]]]
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        pull_requests: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgsDict']]]]
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        scm_providers: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgsDict']]]]
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgsDict']]
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorArgs:
    def __init__(__self__, *,
                 cluster_decision_resources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgs']]]] = None,
                 clusters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgs']]]] = None,
                 gits: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgs']]]] = None,
                 lists: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgs']]]] = None,
                 pull_requests: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgs']]]] = None,
                 scm_providers: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgs']]]] = None,
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgs']]] cluster_decision_resources: The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgs']]] clusters: The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgs']]] gits: [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgs']]] lists: [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgs']]] pull_requests: [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgs']]] scm_providers: [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgs'] selector: The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        if cluster_decision_resources is not None:
            pulumi.set(__self__, "cluster_decision_resources", cluster_decision_resources)
        if clusters is not None:
            pulumi.set(__self__, "clusters", clusters)
        if gits is not None:
            pulumi.set(__self__, "gits", gits)
        if lists is not None:
            pulumi.set(__self__, "lists", lists)
        if pull_requests is not None:
            pulumi.set(__self__, "pull_requests", pull_requests)
        if scm_providers is not None:
            pulumi.set(__self__, "scm_providers", scm_providers)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)

    @_builtins.property
    @pulumi.getter(name="clusterDecisionResources")
    def cluster_decision_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgs']]]]:
        """
        The [cluster decision resource](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster-Decision-Resource/) generates a list of Argo CD clusters.
        """
        return pulumi.get(self, "cluster_decision_resources")

    @cluster_decision_resources.setter
    def cluster_decision_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgs']]]]):
        pulumi.set(self, "cluster_decision_resources", value)

    @_builtins.property
    @pulumi.getter
    def clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgs']]]]:
        """
        The [cluster generator](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Cluster/) produces parameters based on the list of items found within the cluster secret.
        """
        return pulumi.get(self, "clusters")

    @clusters.setter
    def clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgs']]]]):
        pulumi.set(self, "clusters", value)

    @_builtins.property
    @pulumi.getter
    def gits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgs']]]]:
        """
        [Git generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/) generates parameters using either the directory structure of a specified Git repository (directory generator), or, using the contents of JSON/YAML files found within a specified repository (file generator).
        """
        return pulumi.get(self, "gits")

    @gits.setter
    def gits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgs']]]]):
        pulumi.set(self, "gits", value)

    @_builtins.property
    @pulumi.getter
    def lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgs']]]]:
        """
        [List generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-List/) generate parameters based on an arbitrary list of key/value pairs (as long as the values are string values).
        """
        return pulumi.get(self, "lists")

    @lists.setter
    def lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgs']]]]):
        pulumi.set(self, "lists", value)

    @_builtins.property
    @pulumi.getter(name="pullRequests")
    def pull_requests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgs']]]]:
        """
        [Pull Request generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/) uses the API of an SCMaaS provider to automatically discover open pull requests within a repository.
        """
        return pulumi.get(self, "pull_requests")

    @pull_requests.setter
    def pull_requests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgs']]]]):
        pulumi.set(self, "pull_requests", value)

    @_builtins.property
    @pulumi.getter(name="scmProviders")
    def scm_providers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgs']]]]:
        """
        [SCM Provider generators](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-SCM-Provider/) uses the API of an SCMaaS provider to automatically discover repositories within an organization.
        """
        return pulumi.get(self, "scm_providers")

    @scm_providers.setter
    def scm_providers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgs']]]]):
        pulumi.set(self, "scm_providers", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgs']]:
        """
        The Selector allows to post-filter based on generated values using the kubernetes common labelSelector format.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgs']]):
        pulumi.set(self, "selector", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgsDict']]
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgs']] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] enabled: Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgs'] selector: Label selector used to narrow the scope of targeted clusters.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        pulumi.set(__self__, "enabled", enabled)
        if selector is not None:
            pulumi.set(__self__, "selector", selector)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Boolean value defaulting to `true` to indicate that this block has been added thereby allowing all other attributes to be optional.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter
    def selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgs']]:
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        return pulumi.get(self, "selector")

    @selector.setter
    def selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgs']]):
        pulumi.set(self, "selector", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs to pass to the template via the values field of the cluster generator.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgsDict(TypedDict):
        config_map_ref: pulumi.Input[_builtins.str]
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        label_selector: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict']]
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
        values: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceArgs:
    def __init__(__self__, *,
                 config_map_ref: pulumi.Input[_builtins.str],
                 label_selector: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']] = None,
                 values: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] config_map_ref: ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs'] label_selector: Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        :param pulumi.Input[_builtins.str] name: Resource name of the kind, group and version, defined in the `config_map_ref`.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values: Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        pulumi.set(__self__, "config_map_ref", config_map_ref)
        if label_selector is not None:
            pulumi.set(__self__, "label_selector", label_selector)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter(name="configMapRef")
    def config_map_ref(self) -> pulumi.Input[_builtins.str]:
        """
        ConfigMap with the duck type definitions needed to retrieve the data this includes apiVersion(group/version), kind, matchKey and validation settings.
        """
        return pulumi.get(self, "config_map_ref")

    @config_map_ref.setter
    def config_map_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_ref", value)

    @_builtins.property
    @pulumi.getter(name="labelSelector")
    def label_selector(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']]:
        """
        Label selector used to find the resource defined in the `config_map_ref`. Alternative to `name`.
        """
        return pulumi.get(self, "label_selector")

    @label_selector.setter
    def label_selector(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs']]):
        pulumi.set(self, "label_selector", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource name of the kind, group and version, defined in the `config_map_ref`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs']]):
        pulumi.set(self, "template", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Arbitrary string key-value pairs which are passed directly as parameters to the template.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceLabelSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterDecisionResourceTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorClusterTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository to use.
        """
        directories: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgsDict']]]]
        """
        List of directories in the source repository to use when template the Application..
        """
        files: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgsDict']]]]
        """
        List of files in the source repository to use when template the Application.
        """
        path_param_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix for all path-related parameter names.
        """
        revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source repository to use.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 directories: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgs']]]] = None,
                 files: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgs']]]] = None,
                 path_param_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 revision: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository to use.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgs']]] directories: List of directories in the source repository to use when template the Application..
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgs']]] files: List of files in the source repository to use when template the Application.
        :param pulumi.Input[_builtins.str] path_param_prefix: Prefix for all path-related parameter names.
        :param pulumi.Input[_builtins.str] revision: Revision of the source repository to use.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        if directories is not None:
            pulumi.set(__self__, "directories", directories)
        if files is not None:
            pulumi.set(__self__, "files", files)
        if path_param_prefix is not None:
            pulumi.set(__self__, "path_param_prefix", path_param_prefix)
        if revision is not None:
            pulumi.set(__self__, "revision", revision)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository to use.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter
    def directories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgs']]]]:
        """
        List of directories in the source repository to use when template the Application..
        """
        return pulumi.get(self, "directories")

    @directories.setter
    def directories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgs']]]]):
        pulumi.set(self, "directories", value)

    @_builtins.property
    @pulumi.getter
    def files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgs']]]]:
        """
        List of files in the source repository to use when template the Application.
        """
        return pulumi.get(self, "files")

    @files.setter
    def files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgs']]]]):
        pulumi.set(self, "files", value)

    @_builtins.property
    @pulumi.getter(name="pathParamPrefix")
    def path_param_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix for all path-related parameter names.
        """
        return pulumi.get(self, "path_param_prefix")

    @path_param_prefix.setter
    def path_param_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path_param_prefix", value)

    @_builtins.property
    @pulumi.getter
    def revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source repository to use.
        """
        return pulumi.get(self, "revision")

    @revision.setter
    def revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path in the repository.
        """
        exclude: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitDirectoryArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str],
                 exclude: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] path: Path in the repository.
        :param pulumi.Input[_builtins.bool] exclude: Flag indicating whether or not the directory should be excluded when templating.
        """
        pulumi.set(__self__, "path", path)
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Flag indicating whether or not the directory should be excluded when templating.
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "exclude", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path to the file in the repository.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitFileArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] path: Path to the file in the repository.
        """
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file in the repository.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorGitTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgsDict(TypedDict):
        elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]
        """
        List of key/value pairs to pass as parameters into the template.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListArgs:
    def __init__(__self__, *,
                 elements: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]],
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgs']] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] elements: List of key/value pairs to pass as parameters into the template.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        pulumi.set(__self__, "elements", elements)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter
    def elements(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]:
        """
        List of key/value pairs to pass as parameters into the template.
        """
        return pulumi.get(self, "elements")

    @elements.setter
    def elements(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]):
        pulumi.set(self, "elements", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorListTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgsDict(TypedDict):
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict']]
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgsDict']]]]
        """
        Filters allow selecting which pull requests to generate for.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgsDict']]
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgsDict']]
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgsDict']]
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestArgs:
    def __init__(__self__, *,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgs']] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgs'] bitbucket_server: Fetch pull requests from a repo hosted on a Bitbucket Server.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgs']]] filters: Filters allow selecting which pull requests to generate for.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgs'] gitea: Specify the repository from which to fetch the Gitea Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgs'] github: Specify the repository from which to fetch the GitHub Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgs'] gitlab: Specify the project from which to fetch the GitLab merge requests.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 30min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgs']]:
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgs']]]]:
        """
        Filters allow selecting which pull requests to generate for.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgs']]:
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgs']]:
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgs']]:
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Repo name to scan.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.str] repo: Repo name to scan.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "repo", repo)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Gitea API URL to talk to.
        """
        owner: pulumi.Input[_builtins.str]
        """
        Gitea org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Gitea repo name to scan.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Gitea API URL to talk to.
        :param pulumi.Input[_builtins.str] owner: Gitea org or user to scan.
        :param pulumi.Input[_builtins.str] repo: Gitea repo name to scan.
        :param pulumi.Input[_builtins.bool] insecure: Allow insecure tls, for self-signed certificates; default: false.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Gitea API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        GitHub org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        GitHub repo name to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: GitHub org or user to scan.
        :param pulumi.Input[_builtins.str] repo: GitHub repo name to scan.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret with permission to access pull requests.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgsDict(TypedDict):
        project: pulumi.Input[_builtins.str]
        """
        GitLab project to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        pull_request_state: NotRequired[pulumi.Input[_builtins.str]]
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabArgs:
    def __init__(__self__, *,
                 project: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pull_request_state: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] project: GitLab project to scan.
        :param pulumi.Input[_builtins.str] api: The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input[_builtins.str] pull_request_state: additional MRs filter to get only those with a certain state. Default:  "" (all states).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "project", project)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if pull_request_state is not None:
            pulumi.set(__self__, "pull_request_state", pull_request_state)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        GitLab project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="pullRequestState")
    def pull_request_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        return pulumi.get(self, "pull_request_state")

    @pull_request_state.setter
    def pull_request_state(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pull_request_state", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgsDict(TypedDict):
        azure_devops: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict']]
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        bitbucket_cloud: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict']]
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict']]
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        clone_protocol: NotRequired[pulumi.Input[_builtins.str]]
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgsDict']]]]
        """
        Filters for which repos should be considered.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgsDict']]
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgsDict']]
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgsDict']]
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderArgs:
    def __init__(__self__, *,
                 azure_devops: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgs']] = None,
                 bitbucket_cloud: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']] = None,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgs']] = None,
                 clone_protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgs'] azure_devops: Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgs'] bitbucket_cloud: Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgs'] bitbucket_server: Use the Bitbucket Server API (1.0) to scan repos in a project.
        :param pulumi.Input[_builtins.str] clone_protocol: Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgs']]] filters: Filters for which repos should be considered.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgs'] gitea: Gitea mode uses the Gitea API to scan organizations in your instance.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgs'] github: Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgs'] gitlab: Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if azure_devops is not None:
            pulumi.set(__self__, "azure_devops", azure_devops)
        if bitbucket_cloud is not None:
            pulumi.set(__self__, "bitbucket_cloud", bitbucket_cloud)
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if clone_protocol is not None:
            pulumi.set(__self__, "clone_protocol", clone_protocol)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="azureDevops")
    def azure_devops(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgs']]:
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        return pulumi.get(self, "azure_devops")

    @azure_devops.setter
    def azure_devops(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgs']]):
        pulumi.set(self, "azure_devops", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketCloud")
    def bitbucket_cloud(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']]:
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        return pulumi.get(self, "bitbucket_cloud")

    @bitbucket_cloud.setter
    def bitbucket_cloud(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']]):
        pulumi.set(self, "bitbucket_cloud", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgs']]:
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter(name="cloneProtocol")
    def clone_protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        return pulumi.get(self, "clone_protocol")

    @clone_protocol.setter
    def clone_protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "clone_protocol", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgs']]]]:
        """
        Filters for which repos should be considered.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgs']]:
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgs']]:
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgs']]:
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        Azure Devops organization. E.g. "my-organization".
        """
        team_project: pulumi.Input[_builtins.str]
        """
        Azure Devops team project. E.g. "my-team".
        """
        access_token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict']]
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 team_project: pulumi.Input[_builtins.str],
                 access_token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']] = None,
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] organization: Azure Devops organization. E.g. "my-organization".
        :param pulumi.Input[_builtins.str] team_project: Azure Devops team project. E.g. "my-team".
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs'] access_token_ref: The Personal Access Token (PAT) to use when connecting.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "team_project", team_project)
        if access_token_ref is not None:
            pulumi.set(__self__, "access_token_ref", access_token_ref)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops organization. E.g. "my-organization".
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="teamProject")
    def team_project(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops team project. E.g. "my-team".
        """
        return pulumi.get(self, "team_project")

    @team_project.setter
    def team_project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "team_project", value)

    @_builtins.property
    @pulumi.getter(name="accessTokenRef")
    def access_token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]:
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        return pulumi.get(self, "access_token_ref")

    @access_token_ref.setter
    def access_token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]):
        pulumi.set(self, "access_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Bitbucket workspace to scan.
        """
        user: pulumi.Input[_builtins.str]
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        app_password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict']]
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 user: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 app_password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Bitbucket workspace to scan.
        :param pulumi.Input[_builtins.str] user: Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs'] app_password_ref: The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "user", user)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if app_password_ref is not None:
            pulumi.set(__self__, "app_password_ref", app_password_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket workspace to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def user(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        return pulumi.get(self, "user")

    @user.setter
    def user(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="appPasswordRef")
    def app_password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]:
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        return pulumi.get(self, "app_password_ref")

    @app_password_ref.setter
    def app_password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]):
        pulumi.set(self, "app_password_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
        label_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match at least one label.
        """
        paths_do_not_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must not exist.
        """
        paths_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must exist.
        """
        repository_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex for repo names.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None,
                 label_match: Optional[pulumi.Input[_builtins.str]] = None,
                 paths_do_not_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 paths_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 repository_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        :param pulumi.Input[_builtins.str] label_match: A regex which must match at least one label.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_do_not_exists: An array of paths, all of which must not exist.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_exists: An array of paths, all of which must exist.
        :param pulumi.Input[_builtins.str] repository_match: A regex for repo names.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)
        if label_match is not None:
            pulumi.set(__self__, "label_match", label_match)
        if paths_do_not_exists is not None:
            pulumi.set(__self__, "paths_do_not_exists", paths_do_not_exists)
        if paths_exists is not None:
            pulumi.set(__self__, "paths_exists", paths_exists)
        if repository_match is not None:
            pulumi.set(__self__, "repository_match", repository_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)

    @_builtins.property
    @pulumi.getter(name="labelMatch")
    def label_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match at least one label.
        """
        return pulumi.get(self, "label_match")

    @label_match.setter
    def label_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "label_match", value)

    @_builtins.property
    @pulumi.getter(name="pathsDoNotExists")
    def paths_do_not_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must not exist.
        """
        return pulumi.get(self, "paths_do_not_exists")

    @paths_do_not_exists.setter
    def paths_do_not_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_do_not_exists", value)

    @_builtins.property
    @pulumi.getter(name="pathsExists")
    def paths_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must exist.
        """
        return pulumi.get(self, "paths_exists")

    @paths_exists.setter
    def paths_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_exists", value)

    @_builtins.property
    @pulumi.getter(name="repositoryMatch")
    def repository_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex for repo names.
        """
        return pulumi.get(self, "repository_match")

    @repository_match.setter
    def repository_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Gitea organization or user to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow self-signed TLS / Certificates.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Gitea organization or user to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        :param pulumi.Input[_builtins.bool] insecure: Allow self-signed TLS / Certificates.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea organization or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow self-signed TLS / Certificates.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        GitHub org to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] organization: GitHub org to scan.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "organization", organization)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org to scan.
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgsDict(TypedDict):
        group: pulumi.Input[_builtins.str]
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitlab API URL to talk to.
        """
        ca_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict']]
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        include_subgroups: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabArgs:
    def __init__(__self__, *,
                 group: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 ca_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']] = None,
                 include_subgroups: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] group: Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitlab API URL to talk to.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgs'] ca_ref: Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        :param pulumi.Input[_builtins.bool] include_subgroups: Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "group", group)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if ca_ref is not None:
            pulumi.set(__self__, "ca_ref", ca_ref)
        if include_subgroups is not None:
            pulumi.set(__self__, "include_subgroups", include_subgroups)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def group(self) -> pulumi.Input[_builtins.str]:
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitlab API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="caRef")
    def ca_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']]:
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        return pulumi.get(self, "ca_ref")

    @ca_ref.setter
    def ca_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']]):
        pulumi.set(self, "ca_ref", value)

    @_builtins.property
    @pulumi.getter(name="includeSubgroups")
    def include_subgroups(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        return pulumi.get(self, "include_subgroups")

    @include_subgroups.setter
    def include_subgroups(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "include_subgroups", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict(TypedDict):
        config_map_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `ConfigMap`.
        """
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabCaRefArgs:
    def __init__(__self__, *,
                 config_map_name: pulumi.Input[_builtins.str],
                 key: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] config_map_name: Name of Kubernetes `ConfigMap`.
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `ConfigMap`.
        """
        pulumi.set(__self__, "config_map_name", config_map_name)
        pulumi.set(__self__, "key", key)

    @_builtins.property
    @pulumi.getter(name="configMapName")
    def config_map_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "config_map_name")

    @config_map_name.setter
    def config_map_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_name", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeGeneratorSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgsDict(TypedDict):
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict']]
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgsDict']]]]
        """
        Filters allow selecting which pull requests to generate for.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgsDict']]
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgsDict']]
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgsDict']]
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestArgs:
    def __init__(__self__, *,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgs']] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgs'] bitbucket_server: Fetch pull requests from a repo hosted on a Bitbucket Server.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgs']]] filters: Filters allow selecting which pull requests to generate for.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgs'] gitea: Specify the repository from which to fetch the Gitea Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgs'] github: Specify the repository from which to fetch the GitHub Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgs'] gitlab: Specify the project from which to fetch the GitLab merge requests.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 30min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgs']]:
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgs']]]]:
        """
        Filters allow selecting which pull requests to generate for.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgs']]:
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgs']]:
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgs']]:
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Repo name to scan.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.str] repo: Repo name to scan.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "repo", repo)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Gitea API URL to talk to.
        """
        owner: pulumi.Input[_builtins.str]
        """
        Gitea org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Gitea repo name to scan.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Gitea API URL to talk to.
        :param pulumi.Input[_builtins.str] owner: Gitea org or user to scan.
        :param pulumi.Input[_builtins.str] repo: Gitea repo name to scan.
        :param pulumi.Input[_builtins.bool] insecure: Allow insecure tls, for self-signed certificates; default: false.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Gitea API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        GitHub org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        GitHub repo name to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: GitHub org or user to scan.
        :param pulumi.Input[_builtins.str] repo: GitHub repo name to scan.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret with permission to access pull requests.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgsDict(TypedDict):
        project: pulumi.Input[_builtins.str]
        """
        GitLab project to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        pull_request_state: NotRequired[pulumi.Input[_builtins.str]]
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabArgs:
    def __init__(__self__, *,
                 project: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pull_request_state: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] project: GitLab project to scan.
        :param pulumi.Input[_builtins.str] api: The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input[_builtins.str] pull_request_state: additional MRs filter to get only those with a certain state. Default:  "" (all states).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "project", project)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if pull_request_state is not None:
            pulumi.set(__self__, "pull_request_state", pull_request_state)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        GitLab project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="pullRequestState")
    def pull_request_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        return pulumi.get(self, "pull_request_state")

    @pull_request_state.setter
    def pull_request_state(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pull_request_state", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgsDict(TypedDict):
        azure_devops: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict']]
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        bitbucket_cloud: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict']]
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict']]
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        clone_protocol: NotRequired[pulumi.Input[_builtins.str]]
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgsDict']]]]
        """
        Filters for which repos should be considered.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgsDict']]
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgsDict']]
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgsDict']]
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderArgs:
    def __init__(__self__, *,
                 azure_devops: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgs']] = None,
                 bitbucket_cloud: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']] = None,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgs']] = None,
                 clone_protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgs'] azure_devops: Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgs'] bitbucket_cloud: Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgs'] bitbucket_server: Use the Bitbucket Server API (1.0) to scan repos in a project.
        :param pulumi.Input[_builtins.str] clone_protocol: Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgs']]] filters: Filters for which repos should be considered.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgs'] gitea: Gitea mode uses the Gitea API to scan organizations in your instance.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgs'] github: Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgs'] gitlab: Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if azure_devops is not None:
            pulumi.set(__self__, "azure_devops", azure_devops)
        if bitbucket_cloud is not None:
            pulumi.set(__self__, "bitbucket_cloud", bitbucket_cloud)
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if clone_protocol is not None:
            pulumi.set(__self__, "clone_protocol", clone_protocol)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="azureDevops")
    def azure_devops(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgs']]:
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        return pulumi.get(self, "azure_devops")

    @azure_devops.setter
    def azure_devops(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgs']]):
        pulumi.set(self, "azure_devops", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketCloud")
    def bitbucket_cloud(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']]:
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        return pulumi.get(self, "bitbucket_cloud")

    @bitbucket_cloud.setter
    def bitbucket_cloud(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgs']]):
        pulumi.set(self, "bitbucket_cloud", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgs']]:
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter(name="cloneProtocol")
    def clone_protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        return pulumi.get(self, "clone_protocol")

    @clone_protocol.setter
    def clone_protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "clone_protocol", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgs']]]]:
        """
        Filters for which repos should be considered.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgs']]:
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgs']]:
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgs']]:
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        Azure Devops organization. E.g. "my-organization".
        """
        team_project: pulumi.Input[_builtins.str]
        """
        Azure Devops team project. E.g. "my-team".
        """
        access_token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict']]
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 team_project: pulumi.Input[_builtins.str],
                 access_token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']] = None,
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] organization: Azure Devops organization. E.g. "my-organization".
        :param pulumi.Input[_builtins.str] team_project: Azure Devops team project. E.g. "my-team".
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs'] access_token_ref: The Personal Access Token (PAT) to use when connecting.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "team_project", team_project)
        if access_token_ref is not None:
            pulumi.set(__self__, "access_token_ref", access_token_ref)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops organization. E.g. "my-organization".
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="teamProject")
    def team_project(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops team project. E.g. "my-team".
        """
        return pulumi.get(self, "team_project")

    @team_project.setter
    def team_project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "team_project", value)

    @_builtins.property
    @pulumi.getter(name="accessTokenRef")
    def access_token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]:
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        return pulumi.get(self, "access_token_ref")

    @access_token_ref.setter
    def access_token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]):
        pulumi.set(self, "access_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderAzureDevopsAccessTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Bitbucket workspace to scan.
        """
        user: pulumi.Input[_builtins.str]
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        app_password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict']]
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 user: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 app_password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Bitbucket workspace to scan.
        :param pulumi.Input[_builtins.str] user: Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs'] app_password_ref: The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "user", user)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if app_password_ref is not None:
            pulumi.set(__self__, "app_password_ref", app_password_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket workspace to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def user(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        return pulumi.get(self, "user")

    @user.setter
    def user(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="appPasswordRef")
    def app_password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]:
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        return pulumi.get(self, "app_password_ref")

    @app_password_ref.setter
    def app_password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]):
        pulumi.set(self, "app_password_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketCloudAppPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
        label_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match at least one label.
        """
        paths_do_not_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must not exist.
        """
        paths_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must exist.
        """
        repository_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex for repo names.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None,
                 label_match: Optional[pulumi.Input[_builtins.str]] = None,
                 paths_do_not_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 paths_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 repository_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        :param pulumi.Input[_builtins.str] label_match: A regex which must match at least one label.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_do_not_exists: An array of paths, all of which must not exist.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_exists: An array of paths, all of which must exist.
        :param pulumi.Input[_builtins.str] repository_match: A regex for repo names.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)
        if label_match is not None:
            pulumi.set(__self__, "label_match", label_match)
        if paths_do_not_exists is not None:
            pulumi.set(__self__, "paths_do_not_exists", paths_do_not_exists)
        if paths_exists is not None:
            pulumi.set(__self__, "paths_exists", paths_exists)
        if repository_match is not None:
            pulumi.set(__self__, "repository_match", repository_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)

    @_builtins.property
    @pulumi.getter(name="labelMatch")
    def label_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match at least one label.
        """
        return pulumi.get(self, "label_match")

    @label_match.setter
    def label_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "label_match", value)

    @_builtins.property
    @pulumi.getter(name="pathsDoNotExists")
    def paths_do_not_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must not exist.
        """
        return pulumi.get(self, "paths_do_not_exists")

    @paths_do_not_exists.setter
    def paths_do_not_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_do_not_exists", value)

    @_builtins.property
    @pulumi.getter(name="pathsExists")
    def paths_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must exist.
        """
        return pulumi.get(self, "paths_exists")

    @paths_exists.setter
    def paths_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_exists", value)

    @_builtins.property
    @pulumi.getter(name="repositoryMatch")
    def repository_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex for repo names.
        """
        return pulumi.get(self, "repository_match")

    @repository_match.setter
    def repository_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Gitea organization or user to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow self-signed TLS / Certificates.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Gitea organization or user to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        :param pulumi.Input[_builtins.bool] insecure: Allow self-signed TLS / Certificates.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea organization or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow self-signed TLS / Certificates.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        GitHub org to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] organization: GitHub org to scan.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "organization", organization)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org to scan.
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgsDict(TypedDict):
        group: pulumi.Input[_builtins.str]
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitlab API URL to talk to.
        """
        ca_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict']]
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        include_subgroups: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabArgs:
    def __init__(__self__, *,
                 group: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 ca_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']] = None,
                 include_subgroups: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] group: Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitlab API URL to talk to.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgs'] ca_ref: Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        :param pulumi.Input[_builtins.bool] include_subgroups: Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "group", group)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if ca_ref is not None:
            pulumi.set(__self__, "ca_ref", ca_ref)
        if include_subgroups is not None:
            pulumi.set(__self__, "include_subgroups", include_subgroups)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def group(self) -> pulumi.Input[_builtins.str]:
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitlab API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="caRef")
    def ca_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']]:
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        return pulumi.get(self, "ca_ref")

    @ca_ref.setter
    def ca_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgs']]):
        pulumi.set(self, "ca_ref", value)

    @_builtins.property
    @pulumi.getter(name="includeSubgroups")
    def include_subgroups(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        return pulumi.get(self, "include_subgroups")

    @include_subgroups.setter
    def include_subgroups(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "include_subgroups", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict(TypedDict):
        config_map_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `ConfigMap`.
        """
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabCaRefArgs:
    def __init__(__self__, *,
                 config_map_name: pulumi.Input[_builtins.str],
                 key: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] config_map_name: Name of Kubernetes `ConfigMap`.
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `ConfigMap`.
        """
        pulumi.set(__self__, "config_map_name", config_map_name)
        pulumi.set(__self__, "key", key)

    @_builtins.property
    @pulumi.getter(name="configMapName")
    def config_map_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "config_map_name")

    @config_map_name.setter
    def config_map_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_name", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeGeneratorSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorMergeTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgsDict(TypedDict):
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgsDict']]
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgsDict']]]]
        """
        Filters allow selecting which pull requests to generate for.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgsDict']]
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgsDict']]
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgsDict']]
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestArgs:
    def __init__(__self__, *,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgs']] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgs'] bitbucket_server: Fetch pull requests from a repo hosted on a Bitbucket Server.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgs']]] filters: Filters allow selecting which pull requests to generate for.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgs'] gitea: Specify the repository from which to fetch the Gitea Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgs'] github: Specify the repository from which to fetch the GitHub Pull requests.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgs'] gitlab: Specify the project from which to fetch the GitLab merge requests.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 30min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgs']]:
        """
        Fetch pull requests from a repo hosted on a Bitbucket Server.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgs']]]]:
        """
        Filters allow selecting which pull requests to generate for.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgs']]:
        """
        Specify the repository from which to fetch the Gitea Pull requests.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgs']]:
        """
        Specify the repository from which to fetch the GitHub Pull requests.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgs']]:
        """
        Specify the project from which to fetch the GitLab merge requests.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 30min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Repo name to scan.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.str] repo: Repo name to scan.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "repo", repo)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Gitea API URL to talk to.
        """
        owner: pulumi.Input[_builtins.str]
        """
        Gitea org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        Gitea repo name to scan.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Gitea API URL to talk to.
        :param pulumi.Input[_builtins.str] owner: Gitea org or user to scan.
        :param pulumi.Input[_builtins.str] repo: Gitea repo name to scan.
        :param pulumi.Input[_builtins.bool] insecure: Allow insecure tls, for self-signed certificates; default: false.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Gitea API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow insecure tls, for self-signed certificates; default: false.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        GitHub org or user to scan.
        """
        repo: pulumi.Input[_builtins.str]
        """
        GitHub repo name to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 repo: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: GitHub org or user to scan.
        :param pulumi.Input[_builtins.str] repo: GitHub repo name to scan.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret with permission to access pull requests.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "repo", repo)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub repo name to scan.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret with permission to access pull requests.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgsDict(TypedDict):
        project: pulumi.Input[_builtins.str]
        """
        GitLab project to scan.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        labels: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Labels is used to filter the PRs that you want to target.
        """
        pull_request_state: NotRequired[pulumi.Input[_builtins.str]]
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabArgs:
    def __init__(__self__, *,
                 project: pulumi.Input[_builtins.str],
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 labels: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pull_request_state: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] project: GitLab project to scan.
        :param pulumi.Input[_builtins.str] api: The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] labels: Labels is used to filter the PRs that you want to target.
        :param pulumi.Input[_builtins.str] pull_request_state: additional MRs filter to get only those with a certain state. Default:  "" (all states).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "project", project)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if pull_request_state is not None:
            pulumi.set(__self__, "pull_request_state", pull_request_state)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        GitLab project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitLab API URL to talk to. If blank, uses https://gitlab.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Labels is used to filter the PRs that you want to target.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter(name="pullRequestState")
    def pull_request_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        additional MRs filter to get only those with a certain state. Default:  "" (all states).
        """
        return pulumi.get(self, "pull_request_state")

    @pull_request_state.setter
    def pull_request_state(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pull_request_state", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorPullRequestTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgsDict(TypedDict):
        azure_devops: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgsDict']]
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        bitbucket_cloud: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgsDict']]
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        bitbucket_server: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgsDict']]
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        clone_protocol: NotRequired[pulumi.Input[_builtins.str]]
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgsDict']]]]
        """
        Filters for which repos should be considered.
        """
        gitea: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgsDict']]
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        github: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgsDict']]
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        gitlab: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgsDict']]
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        requeue_after_seconds: NotRequired[pulumi.Input[_builtins.str]]
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        template: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgsDict']]
        """
        Generator template. Used to override the values of the spec-level template.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderArgs:
    def __init__(__self__, *,
                 azure_devops: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgs']] = None,
                 bitbucket_cloud: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgs']] = None,
                 bitbucket_server: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgs']] = None,
                 clone_protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 filters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgs']]]] = None,
                 gitea: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgs']] = None,
                 github: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgs']] = None,
                 gitlab: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgs']] = None,
                 requeue_after_seconds: Optional[pulumi.Input[_builtins.str]] = None,
                 template: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgs'] azure_devops: Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgs'] bitbucket_cloud: Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgs'] bitbucket_server: Use the Bitbucket Server API (1.0) to scan repos in a project.
        :param pulumi.Input[_builtins.str] clone_protocol: Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgs']]] filters: Filters for which repos should be considered.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgs'] gitea: Gitea mode uses the Gitea API to scan organizations in your instance.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgs'] github: Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgs'] gitlab: Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        :param pulumi.Input[_builtins.str] requeue_after_seconds: How often to check for changes (in seconds). Default: 3min.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgs'] template: Generator template. Used to override the values of the spec-level template.
        """
        if azure_devops is not None:
            pulumi.set(__self__, "azure_devops", azure_devops)
        if bitbucket_cloud is not None:
            pulumi.set(__self__, "bitbucket_cloud", bitbucket_cloud)
        if bitbucket_server is not None:
            pulumi.set(__self__, "bitbucket_server", bitbucket_server)
        if clone_protocol is not None:
            pulumi.set(__self__, "clone_protocol", clone_protocol)
        if filters is not None:
            pulumi.set(__self__, "filters", filters)
        if gitea is not None:
            pulumi.set(__self__, "gitea", gitea)
        if github is not None:
            pulumi.set(__self__, "github", github)
        if gitlab is not None:
            pulumi.set(__self__, "gitlab", gitlab)
        if requeue_after_seconds is not None:
            pulumi.set(__self__, "requeue_after_seconds", requeue_after_seconds)
        if template is not None:
            pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="azureDevops")
    def azure_devops(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgs']]:
        """
        Uses the Azure DevOps API to look up eligible repositories based on a team project within an Azure DevOps organization.
        """
        return pulumi.get(self, "azure_devops")

    @azure_devops.setter
    def azure_devops(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgs']]):
        pulumi.set(self, "azure_devops", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketCloud")
    def bitbucket_cloud(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgs']]:
        """
        Uses the Bitbucket API V2 to scan a workspace in bitbucket.org.
        """
        return pulumi.get(self, "bitbucket_cloud")

    @bitbucket_cloud.setter
    def bitbucket_cloud(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgs']]):
        pulumi.set(self, "bitbucket_cloud", value)

    @_builtins.property
    @pulumi.getter(name="bitbucketServer")
    def bitbucket_server(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgs']]:
        """
        Use the Bitbucket Server API (1.0) to scan repos in a project.
        """
        return pulumi.get(self, "bitbucket_server")

    @bitbucket_server.setter
    def bitbucket_server(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgs']]):
        pulumi.set(self, "bitbucket_server", value)

    @_builtins.property
    @pulumi.getter(name="cloneProtocol")
    def clone_protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Which protocol to use for the SCM URL. Default is provider-specific but ssh if possible. Not all providers necessarily support all protocols.
        """
        return pulumi.get(self, "clone_protocol")

    @clone_protocol.setter
    def clone_protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "clone_protocol", value)

    @_builtins.property
    @pulumi.getter
    def filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgs']]]]:
        """
        Filters for which repos should be considered.
        """
        return pulumi.get(self, "filters")

    @filters.setter
    def filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgs']]]]):
        pulumi.set(self, "filters", value)

    @_builtins.property
    @pulumi.getter
    def gitea(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgs']]:
        """
        Gitea mode uses the Gitea API to scan organizations in your instance.
        """
        return pulumi.get(self, "gitea")

    @gitea.setter
    def gitea(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgs']]):
        pulumi.set(self, "gitea", value)

    @_builtins.property
    @pulumi.getter
    def github(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgs']]:
        """
        Uses the GitHub API to scan an organization in either github.com or GitHub Enterprise.
        """
        return pulumi.get(self, "github")

    @github.setter
    def github(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgs']]):
        pulumi.set(self, "github", value)

    @_builtins.property
    @pulumi.getter
    def gitlab(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgs']]:
        """
        Uses the GitLab API to scan and organization in either gitlab.com or self-hosted GitLab.
        """
        return pulumi.get(self, "gitlab")

    @gitlab.setter
    def gitlab(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgs']]):
        pulumi.set(self, "gitlab", value)

    @_builtins.property
    @pulumi.getter(name="requeueAfterSeconds")
    def requeue_after_seconds(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        How often to check for changes (in seconds). Default: 3min.
        """
        return pulumi.get(self, "requeue_after_seconds")

    @requeue_after_seconds.setter
    def requeue_after_seconds(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "requeue_after_seconds", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgs']]:
        """
        Generator template. Used to override the values of the spec-level template.
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgs']]):
        pulumi.set(self, "template", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        Azure Devops organization. E.g. "my-organization".
        """
        team_project: pulumi.Input[_builtins.str]
        """
        Azure Devops team project. E.g. "my-team".
        """
        access_token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict']]
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 team_project: pulumi.Input[_builtins.str],
                 access_token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgs']] = None,
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] organization: Azure Devops organization. E.g. "my-organization".
        :param pulumi.Input[_builtins.str] team_project: Azure Devops team project. E.g. "my-team".
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgs'] access_token_ref: The Personal Access Token (PAT) to use when connecting.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "team_project", team_project)
        if access_token_ref is not None:
            pulumi.set(__self__, "access_token_ref", access_token_ref)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops organization. E.g. "my-organization".
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="teamProject")
    def team_project(self) -> pulumi.Input[_builtins.str]:
        """
        Azure Devops team project. E.g. "my-team".
        """
        return pulumi.get(self, "team_project")

    @team_project.setter
    def team_project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "team_project", value)

    @_builtins.property
    @pulumi.getter(name="accessTokenRef")
    def access_token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]:
        """
        The Personal Access Token (PAT) to use when connecting.
        """
        return pulumi.get(self, "access_token_ref")

    @access_token_ref.setter
    def access_token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgs']]):
        pulumi.set(self, "access_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The URL to Azure DevOps. Defaults to https://dev.azure.com.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderAzureDevopsAccessTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Bitbucket workspace to scan.
        """
        user: pulumi.Input[_builtins.str]
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        app_password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict']]
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 user: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 app_password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Bitbucket workspace to scan.
        :param pulumi.Input[_builtins.str] user: Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgs'] app_password_ref: The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        pulumi.set(__self__, "owner", owner)
        pulumi.set(__self__, "user", user)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if app_password_ref is not None:
            pulumi.set(__self__, "app_password_ref", app_password_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket workspace to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter
    def user(self) -> pulumi.Input[_builtins.str]:
        """
        Bitbucket user to use when authenticating. Should have a "member" role to be able to read all repositories and branches.
        """
        return pulumi.get(self, "user")

    @user.setter
    def user(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="appPasswordRef")
    def app_password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]:
        """
        The app password to use for the user. See: https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/.
        """
        return pulumi.get(self, "app_password_ref")

    @app_password_ref.setter
    def app_password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgs']]):
        pulumi.set(self, "app_password_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketCloudAppPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgsDict(TypedDict):
        api: pulumi.Input[_builtins.str]
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        project: pulumi.Input[_builtins.str]
        """
        Project to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        basic_auth: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgsDict']]
        """
        Credentials for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerArgs:
    def __init__(__self__, *,
                 api: pulumi.Input[_builtins.str],
                 project: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 basic_auth: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] api: The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        :param pulumi.Input[_builtins.str] project: Project to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgs'] basic_auth: Credentials for Basic auth.
        """
        pulumi.set(__self__, "api", api)
        pulumi.set(__self__, "project", project)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if basic_auth is not None:
            pulumi.set(__self__, "basic_auth", basic_auth)

    @_builtins.property
    @pulumi.getter
    def api(self) -> pulumi.Input[_builtins.str]:
        """
        The Bitbucket REST API URL to talk to e.g. https://bitbucket.org/rest.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> pulumi.Input[_builtins.str]:
        """
        Project to scan.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter(name="basicAuth")
    def basic_auth(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgs']]:
        """
        Credentials for Basic auth.
        """
        return pulumi.get(self, "basic_auth")

    @basic_auth.setter
    def basic_auth(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgs']]):
        pulumi.set(self, "basic_auth", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgsDict(TypedDict):
        password_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict']]
        """
        Password (or personal access token) reference.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for Basic auth.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthArgs:
    def __init__(__self__, *,
                 password_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs'] password_ref: Password (or personal access token) reference.
        :param pulumi.Input[_builtins.str] username: Username for Basic auth.
        """
        if password_ref is not None:
            pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]:
        """
        Password (or personal access token) reference.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs']]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for Basic auth.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderBitbucketServerBasicAuthPasswordRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgsDict(TypedDict):
        branch_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match the branch name.
        """
        label_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex which must match at least one label.
        """
        paths_do_not_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must not exist.
        """
        paths_exists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of paths, all of which must exist.
        """
        repository_match: NotRequired[pulumi.Input[_builtins.str]]
        """
        A regex for repo names.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderFilterArgs:
    def __init__(__self__, *,
                 branch_match: Optional[pulumi.Input[_builtins.str]] = None,
                 label_match: Optional[pulumi.Input[_builtins.str]] = None,
                 paths_do_not_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 paths_exists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 repository_match: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_match: A regex which must match the branch name.
        :param pulumi.Input[_builtins.str] label_match: A regex which must match at least one label.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_do_not_exists: An array of paths, all of which must not exist.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] paths_exists: An array of paths, all of which must exist.
        :param pulumi.Input[_builtins.str] repository_match: A regex for repo names.
        """
        if branch_match is not None:
            pulumi.set(__self__, "branch_match", branch_match)
        if label_match is not None:
            pulumi.set(__self__, "label_match", label_match)
        if paths_do_not_exists is not None:
            pulumi.set(__self__, "paths_do_not_exists", paths_do_not_exists)
        if paths_exists is not None:
            pulumi.set(__self__, "paths_exists", paths_exists)
        if repository_match is not None:
            pulumi.set(__self__, "repository_match", repository_match)

    @_builtins.property
    @pulumi.getter(name="branchMatch")
    def branch_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match the branch name.
        """
        return pulumi.get(self, "branch_match")

    @branch_match.setter
    def branch_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_match", value)

    @_builtins.property
    @pulumi.getter(name="labelMatch")
    def label_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex which must match at least one label.
        """
        return pulumi.get(self, "label_match")

    @label_match.setter
    def label_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "label_match", value)

    @_builtins.property
    @pulumi.getter(name="pathsDoNotExists")
    def paths_do_not_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must not exist.
        """
        return pulumi.get(self, "paths_do_not_exists")

    @paths_do_not_exists.setter
    def paths_do_not_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_do_not_exists", value)

    @_builtins.property
    @pulumi.getter(name="pathsExists")
    def paths_exists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of paths, all of which must exist.
        """
        return pulumi.get(self, "paths_exists")

    @paths_exists.setter
    def paths_exists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "paths_exists", value)

    @_builtins.property
    @pulumi.getter(name="repositoryMatch")
    def repository_match(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A regex for repo names.
        """
        return pulumi.get(self, "repository_match")

    @repository_match.setter
    def repository_match(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_match", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgsDict(TypedDict):
        owner: pulumi.Input[_builtins.str]
        """
        Gitea organization or user to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Scan all branches instead of just the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        insecure: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow self-signed TLS / Certificates.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaArgs:
    def __init__(__self__, *,
                 owner: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 insecure: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] owner: Gitea organization or user to scan.
        :param pulumi.Input[_builtins.bool] all_branches: Scan all branches instead of just the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        :param pulumi.Input[_builtins.bool] insecure: Allow self-signed TLS / Certificates.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "owner", owner)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if insecure is not None:
            pulumi.set(__self__, "insecure", insecure)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> pulumi.Input[_builtins.str]:
        """
        Gitea organization or user to scan.
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Scan all branches instead of just the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitea URL to talk to. For example https://gitea.mydomain.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter
    def insecure(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow self-signed TLS / Certificates.
        """
        return pulumi.get(self, "insecure")

    @insecure.setter
    def insecure(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "insecure", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGiteaTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgsDict(TypedDict):
        organization: pulumi.Input[_builtins.str]
        """
        GitHub org to scan.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        app_secret_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubArgs:
    def __init__(__self__, *,
                 organization: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 app_secret_name: Optional[pulumi.Input[_builtins.str]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] organization: GitHub org to scan.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The GitHub API URL to talk to. Default https://api.github.com/.
        :param pulumi.Input[_builtins.str] app_secret_name: Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "organization", organization)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if app_secret_name is not None:
            pulumi.set(__self__, "app_secret_name", app_secret_name)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def organization(self) -> pulumi.Input[_builtins.str]:
        """
        GitHub org to scan.
        """
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "organization", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The GitHub API URL to talk to. Default https://api.github.com/.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="appSecretName")
    def app_secret_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a GitHub App repo-creds secret. Uses a GitHub App to access the API instead of a PAT.
        """
        return pulumi.get(self, "app_secret_name")

    @app_secret_name.setter
    def app_secret_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "app_secret_name", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGithubTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgsDict(TypedDict):
        group: pulumi.Input[_builtins.str]
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        all_branches: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        api: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Gitlab API URL to talk to.
        """
        ca_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgsDict']]
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        include_subgroups: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        token_ref: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgsDict']]
        """
        Authentication token reference.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabArgs:
    def __init__(__self__, *,
                 group: pulumi.Input[_builtins.str],
                 all_branches: Optional[pulumi.Input[_builtins.bool]] = None,
                 api: Optional[pulumi.Input[_builtins.str]] = None,
                 ca_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgs']] = None,
                 include_subgroups: Optional[pulumi.Input[_builtins.bool]] = None,
                 token_ref: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] group: Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        :param pulumi.Input[_builtins.bool] all_branches: If true, scan every branch of every repository. If false, scan only the default branch.
        :param pulumi.Input[_builtins.str] api: The Gitlab API URL to talk to.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgs'] ca_ref: Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        :param pulumi.Input[_builtins.bool] include_subgroups: Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgs'] token_ref: Authentication token reference.
        """
        pulumi.set(__self__, "group", group)
        if all_branches is not None:
            pulumi.set(__self__, "all_branches", all_branches)
        if api is not None:
            pulumi.set(__self__, "api", api)
        if ca_ref is not None:
            pulumi.set(__self__, "ca_ref", ca_ref)
        if include_subgroups is not None:
            pulumi.set(__self__, "include_subgroups", include_subgroups)
        if token_ref is not None:
            pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter
    def group(self) -> pulumi.Input[_builtins.str]:
        """
        Gitlab group to scan. You can use either the project id (recommended) or the full namespaced path.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="allBranches")
    def all_branches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true, scan every branch of every repository. If false, scan only the default branch.
        """
        return pulumi.get(self, "all_branches")

    @all_branches.setter
    def all_branches(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "all_branches", value)

    @_builtins.property
    @pulumi.getter
    def api(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Gitlab API URL to talk to.
        """
        return pulumi.get(self, "api")

    @api.setter
    def api(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "api", value)

    @_builtins.property
    @pulumi.getter(name="caRef")
    def ca_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgs']]:
        """
        Reference to a ConfigMap containing a CA certificate for self-signed GitLab instances.
        """
        return pulumi.get(self, "ca_ref")

    @ca_ref.setter
    def ca_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgs']]):
        pulumi.set(self, "ca_ref", value)

    @_builtins.property
    @pulumi.getter(name="includeSubgroups")
    def include_subgroups(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Recurse through subgroups (true) or scan only the base group (false). Defaults to `false`.
        """
        return pulumi.get(self, "include_subgroups")

    @include_subgroups.setter
    def include_subgroups(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "include_subgroups", value)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgs']]:
        """
        Authentication token reference.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgs']]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgsDict(TypedDict):
        config_map_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `ConfigMap`.
        """
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabCaRefArgs:
    def __init__(__self__, *,
                 config_map_name: pulumi.Input[_builtins.str],
                 key: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] config_map_name: Name of Kubernetes `ConfigMap`.
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `ConfigMap`.
        """
        pulumi.set(__self__, "config_map_name", config_map_name)
        pulumi.set(__self__, "key", key)

    @_builtins.property
    @pulumi.getter(name="configMapName")
    def config_map_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "config_map_name")

    @config_map_name.setter
    def config_map_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "config_map_name", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `ConfigMap`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key containing information in Kubernetes `Secret`.
        """
        secret_name: pulumi.Input[_builtins.str]
        """
        Name of Kubernetes `Secret`.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderGitlabTokenRefArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 secret_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key containing information in Kubernetes `Secret`.
        :param pulumi.Input[_builtins.str] secret_name: Name of Kubernetes `Secret`.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret_name", secret_name)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key containing information in Kubernetes `Secret`.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="secretName")
    def secret_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Kubernetes `Secret`.
        """
        return pulumi.get(self, "secret_name")

    @secret_name.setter
    def secret_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "secret_name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgsDict(TypedDict):
        metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgsDict']]
        """
        Kubernetes object metadata for templated Application.
        """
        spec: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgsDict']]
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateArgs:
    def __init__(__self__, *,
                 metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgs']] = None,
                 spec: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgs'] spec: The application specification.
        """
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgs']]:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgs']]):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgs']]:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgs']]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the resulting Application
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgsDict(TypedDict):
        destination: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgsDict']]
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        source: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgs']] = None,
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 source: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgs']]:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgs']]):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgsDict(TypedDict):
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        repo_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorScmProviderTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        match_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorSelectorArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgs']]]] = None,
                 match_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] match_labels: A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if match_labels is not None:
            pulumi.set(__self__, "match_labels", match_labels)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="matchLabels")
    def match_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        A map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of `match_expressions`, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
        """
        return pulumi.get(self, "match_labels")

    @match_labels.setter
    def match_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "match_labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecGeneratorSelectorMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgsDict(TypedDict):
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        jq path to ignore differences
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Json pointers to ignore differences
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        name
        """
elif False:
    GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecIgnoreApplicationDifferenceArgs:
    def __init__(__self__, *,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: jq path to ignore differences
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: Json pointers to ignore differences
        :param pulumi.Input[_builtins.str] name: name
        """
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        jq path to ignore differences
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Json pointers to ignore differences
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        name
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecStrategyArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        Type of progressive sync.
        """
        rolling_syncs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgsDict']]]]
        """
        Strategy allowing you to group Applications by labels present on the generated Application resources. When the ApplicationSet changes, the changes will be applied to each group of Application resources sequentially.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecStrategyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecStrategyArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 rolling_syncs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgs']]]] = None):
        """
        :param pulumi.Input[_builtins.str] type: Type of progressive sync.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgs']]] rolling_syncs: Strategy allowing you to group Applications by labels present on the generated Application resources. When the ApplicationSet changes, the changes will be applied to each group of Application resources sequentially.
        """
        pulumi.set(__self__, "type", type)
        if rolling_syncs is not None:
            pulumi.set(__self__, "rolling_syncs", rolling_syncs)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of progressive sync.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="rollingSyncs")
    def rolling_syncs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgs']]]]:
        """
        Strategy allowing you to group Applications by labels present on the generated Application resources. When the ApplicationSet changes, the changes will be applied to each group of Application resources sequentially.
        """
        return pulumi.get(self, "rolling_syncs")

    @rolling_syncs.setter
    def rolling_syncs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgs']]]]):
        pulumi.set(self, "rolling_syncs", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgsDict(TypedDict):
        steps: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgsDict']]]
        """
        Configuration used to define which applications to include in each stage of the rolling sync. All Applications in each group must become Healthy before the ApplicationSet controller will proceed to update the next group of Applications.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecStrategyRollingSyncArgs:
    def __init__(__self__, *,
                 steps: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgs']]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgs']]] steps: Configuration used to define which applications to include in each stage of the rolling sync. All Applications in each group must become Healthy before the ApplicationSet controller will proceed to update the next group of Applications.
        """
        pulumi.set(__self__, "steps", steps)

    @_builtins.property
    @pulumi.getter
    def steps(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgs']]]:
        """
        Configuration used to define which applications to include in each stage of the rolling sync. All Applications in each group must become Healthy before the ApplicationSet controller will proceed to update the next group of Applications.
        """
        return pulumi.get(self, "steps")

    @steps.setter
    def steps(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgs']]]):
        pulumi.set(self, "steps", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgsDict(TypedDict):
        match_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgsDict']]]]
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        max_update: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of simultaneous Application updates in a group. Supports both integer and percentage string values (rounds down, but floored at 1 Application for >0%). Default is 100%, unbounded.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepArgs:
    def __init__(__self__, *,
                 match_expressions: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgs']]]] = None,
                 max_update: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgs']]] match_expressions: A list of label selector requirements. The requirements are ANDed.
        :param pulumi.Input[_builtins.str] max_update: Maximum number of simultaneous Application updates in a group. Supports both integer and percentage string values (rounds down, but floored at 1 Application for >0%). Default is 100%, unbounded.
        """
        if match_expressions is not None:
            pulumi.set(__self__, "match_expressions", match_expressions)
        if max_update is not None:
            pulumi.set(__self__, "max_update", max_update)

    @_builtins.property
    @pulumi.getter(name="matchExpressions")
    def match_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgs']]]]:
        """
        A list of label selector requirements. The requirements are ANDed.
        """
        return pulumi.get(self, "match_expressions")

    @match_expressions.setter
    def match_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgs']]]]):
        pulumi.set(self, "match_expressions", value)

    @_builtins.property
    @pulumi.getter(name="maxUpdate")
    def max_update(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of simultaneous Application updates in a group. Supports both integer and percentage string values (rounds down, but floored at 1 Application for >0%). Default is 100%, unbounded.
        """
        return pulumi.get(self, "max_update")

    @max_update.setter
    def max_update(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_update", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        The label key that the selector applies to.
        """
        operator: NotRequired[pulumi.Input[_builtins.str]]
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecStrategyRollingSyncStepMatchExpressionArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 operator: Optional[pulumi.Input[_builtins.str]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] key: The label key that the selector applies to.
        :param pulumi.Input[_builtins.str] operator: A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] values: An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The label key that the selector applies to.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def operator(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        A key's relationship to a set of values. Valid operators ard `In`, `NotIn`, `Exists` and `DoesNotExist`.
        """
        return pulumi.get(self, "operator")

    @operator.setter
    def operator(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "operator", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of string values. If the operator is `In` or `NotIn`, the values array must be non-empty. If the operator is `Exists` or `DoesNotExist`, the values array must be empty. This array is replaced during a strategic merge patch.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecSyncPolicyArgsDict(TypedDict):
        applications_sync: NotRequired[pulumi.Input[_builtins.str]]
        """
        Represents the policy applied on the generated applications. Possible values are create-only, create-update, create-delete, and sync.
        """
        preserve_resources_on_deletion: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Label selector used to narrow the scope of targeted clusters.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 applications_sync: Optional[pulumi.Input[_builtins.str]] = None,
                 preserve_resources_on_deletion: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] applications_sync: Represents the policy applied on the generated applications. Possible values are create-only, create-update, create-delete, and sync.
        :param pulumi.Input[_builtins.bool] preserve_resources_on_deletion: Label selector used to narrow the scope of targeted clusters.
        """
        if applications_sync is not None:
            pulumi.set(__self__, "applications_sync", applications_sync)
        if preserve_resources_on_deletion is not None:
            pulumi.set(__self__, "preserve_resources_on_deletion", preserve_resources_on_deletion)

    @_builtins.property
    @pulumi.getter(name="applicationsSync")
    def applications_sync(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Represents the policy applied on the generated applications. Possible values are create-only, create-update, create-delete, and sync.
        """
        return pulumi.get(self, "applications_sync")

    @applications_sync.setter
    def applications_sync(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "applications_sync", value)

    @_builtins.property
    @pulumi.getter(name="preserveResourcesOnDeletion")
    def preserve_resources_on_deletion(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Label selector used to narrow the scope of targeted clusters.
        """
        return pulumi.get(self, "preserve_resources_on_deletion")

    @preserve_resources_on_deletion.setter
    def preserve_resources_on_deletion(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "preserve_resources_on_deletion", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateArgsDict(TypedDict):
        metadata: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateMetadataArgsDict']
        """
        Kubernetes object metadata for templated Application.
        """
        spec: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecArgsDict']
        """
        The application specification.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateArgs:
    def __init__(__self__, *,
                 metadata: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateMetadataArgs'],
                 spec: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecArgs']):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateMetadataArgs'] metadata: Kubernetes object metadata for templated Application.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecArgs'] spec: The application specification.
        """
        pulumi.set(__self__, "metadata", metadata)
        pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateMetadataArgs']:
        """
        Kubernetes object metadata for templated Application.
        """
        return pulumi.get(self, "metadata")

    @metadata.setter
    def metadata(self, value: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateMetadataArgs']):
        pulumi.set(self, "metadata", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecArgs']:
        """
        The application specification.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecArgs']):
        pulumi.set(self, "spec", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateMetadataArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the resulting Application
        """
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        finalizers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of finalizers to apply to the resulting Application.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Namespace of the resulting Application
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateMetadataArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 finalizers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the resulting Application
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] finalizers: List of finalizers to apply to the resulting Application.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        :param pulumi.Input[_builtins.str] namespace: Namespace of the resulting Application
        """
        pulumi.set(__self__, "name", name)
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if finalizers is not None:
            pulumi.set(__self__, "finalizers", finalizers)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the resulting Application
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        An unstructured key value map that may be used to store arbitrary metadata for the resulting Application.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def finalizers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of finalizers to apply to the resulting Application.
        """
        return pulumi.get(self, "finalizers")

    @finalizers.setter
    def finalizers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "finalizers", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Map of string keys and values that can be used to organize and categorize (scope and select) the resulting Application.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Namespace of the resulting Application
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecArgsDict(TypedDict):
        destination: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgsDict']
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        source: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgsDict']]]
        """
        Location of the application's manifests or chart.
        """
        ignore_differences: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgsDict']]]]
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgsDict']]]]
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        The project the application belongs to.
        """
        revision_history_limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgsDict']]]]
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        sync_policy: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgsDict']]
        """
        Controls when and how a sync will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecArgs:
    def __init__(__self__, *,
                 destination: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgs'],
                 source: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs']]],
                 ignore_differences: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgs']]]] = None,
                 infos: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgs']]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 revision_history_limit: Optional[pulumi.Input[_builtins.str]] = None,
                 sources: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs']]]] = None,
                 sync_policy: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgs']] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgs'] destination: Reference to the Kubernetes server and namespace in which the application will be deployed.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs']]] source: Location of the application's manifests or chart.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgs']]] ignore_differences: Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgs']]] infos: List of information (URLs, email addresses, and plain text) that relates to the application.
        :param pulumi.Input[_builtins.str] project: The project the application belongs to.
        :param pulumi.Input[_builtins.str] revision_history_limit: Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs']]] sources: Location of the application's manifests or chart. Use when specifying multiple fields
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgs'] sync_policy: Controls when and how a sync will be performed.
        """
        pulumi.set(__self__, "destination", destination)
        pulumi.set(__self__, "source", source)
        if ignore_differences is not None:
            pulumi.set(__self__, "ignore_differences", ignore_differences)
        if infos is not None:
            pulumi.set(__self__, "infos", infos)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if revision_history_limit is not None:
            pulumi.set(__self__, "revision_history_limit", revision_history_limit)
        if sources is not None:
            pulumi.set(__self__, "sources", sources)
        if sync_policy is not None:
            pulumi.set(__self__, "sync_policy", sync_policy)

    @_builtins.property
    @pulumi.getter
    def destination(self) -> pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgs']:
        """
        Reference to the Kubernetes server and namespace in which the application will be deployed.
        """
        return pulumi.get(self, "destination")

    @destination.setter
    def destination(self, value: pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgs']):
        pulumi.set(self, "destination", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs']]]:
        """
        Location of the application's manifests or chart.
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs']]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter(name="ignoreDifferences")
    def ignore_differences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgs']]]]:
        """
        Resources and their fields which should be ignored during comparison. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration.
        """
        return pulumi.get(self, "ignore_differences")

    @ignore_differences.setter
    def ignore_differences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgs']]]]):
        pulumi.set(self, "ignore_differences", value)

    @_builtins.property
    @pulumi.getter
    def infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgs']]]]:
        """
        List of information (URLs, email addresses, and plain text) that relates to the application.
        """
        return pulumi.get(self, "infos")

    @infos.setter
    def infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgs']]]]):
        pulumi.set(self, "infos", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The project the application belongs to.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="revisionHistoryLimit")
    def revision_history_limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
        """
        return pulumi.get(self, "revision_history_limit")

    @revision_history_limit.setter
    def revision_history_limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "revision_history_limit", value)

    @_builtins.property
    @pulumi.getter
    def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs']]]]:
        """
        Location of the application's manifests or chart. Use when specifying multiple fields
        """
        return pulumi.get(self, "sources")

    @sources.setter
    def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs']]]]):
        pulumi.set(self, "sources", value)

    @_builtins.property
    @pulumi.getter(name="syncPolicy")
    def sync_policy(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgs']]:
        """
        Controls when and how a sync will be performed.
        """
        return pulumi.get(self, "sync_policy")

    @sync_policy.setter
    def sync_policy(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgs']]):
        pulumi.set(self, "sync_policy", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        server: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecDestinationArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None,
                 server: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the target cluster. Can be used instead of `server`.
        :param pulumi.Input[_builtins.str] namespace: Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        :param pulumi.Input[_builtins.str] server: URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)
        if server is not None:
            pulumi.set(__self__, "server", server)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the target cluster. Can be used instead of `server`.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)

    @_builtins.property
    @pulumi.getter
    def server(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the target cluster and must be set to the Kubernetes control plane API.
        """
        return pulumi.get(self, "server")

    @server.setter
    def server(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "server", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgsDict(TypedDict):
        group: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Group to match for.
        """
        jq_path_expressions: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        json_pointers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        kind: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Kind to match for.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Name to match for.
        """
        namespace: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Kubernetes resource Namespace to match for.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecIgnoreDifferenceArgs:
    def __init__(__self__, *,
                 group: Optional[pulumi.Input[_builtins.str]] = None,
                 jq_path_expressions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 json_pointers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 kind: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 namespace: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group: The Kubernetes resource Group to match for.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] jq_path_expressions: List of JQ path expression strings targeting the field(s) to ignore.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] json_pointers: List of JSONPaths strings targeting the field(s) to ignore.
        :param pulumi.Input[_builtins.str] kind: The Kubernetes resource Kind to match for.
        :param pulumi.Input[_builtins.str] name: The Kubernetes resource Name to match for.
        :param pulumi.Input[_builtins.str] namespace: The Kubernetes resource Namespace to match for.
        """
        if group is not None:
            pulumi.set(__self__, "group", group)
        if jq_path_expressions is not None:
            pulumi.set(__self__, "jq_path_expressions", jq_path_expressions)
        if json_pointers is not None:
            pulumi.set(__self__, "json_pointers", json_pointers)
        if kind is not None:
            pulumi.set(__self__, "kind", kind)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if namespace is not None:
            pulumi.set(__self__, "namespace", namespace)

    @_builtins.property
    @pulumi.getter
    def group(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Group to match for.
        """
        return pulumi.get(self, "group")

    @group.setter
    def group(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group", value)

    @_builtins.property
    @pulumi.getter(name="jqPathExpressions")
    def jq_path_expressions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JQ path expression strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "jq_path_expressions")

    @jq_path_expressions.setter
    def jq_path_expressions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "jq_path_expressions", value)

    @_builtins.property
    @pulumi.getter(name="jsonPointers")
    def json_pointers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of JSONPaths strings targeting the field(s) to ignore.
        """
        return pulumi.get(self, "json_pointers")

    @json_pointers.setter
    def json_pointers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "json_pointers", value)

    @_builtins.property
    @pulumi.getter
    def kind(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Kind to match for.
        """
        return pulumi.get(self, "kind")

    @kind.setter
    def kind(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kind", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Name to match for.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Kubernetes resource Namespace to match for.
        """
        return pulumi.get(self, "namespace")

    @namespace.setter
    def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the information.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the information.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecInfoArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the information.
        :param pulumi.Input[_builtins.str] value: Value of the information.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the information.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the information.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgsDict(TypedDict):
        repo_url: pulumi.Input[_builtins.str]
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        chart: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        directory: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgsDict']]
        """
        Path/directory specific options.
        """
        helm: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgsDict']]
        """
        Helm specific options.
        """
        kustomize: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgsDict']]
        """
        Kustomize specific options.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        plugin: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgsDict']]
        """
        Config management plugin specific options.
        """
        ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        target_revision: NotRequired[pulumi.Input[_builtins.str]]
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceArgs:
    def __init__(__self__, *,
                 repo_url: pulumi.Input[_builtins.str],
                 chart: Optional[pulumi.Input[_builtins.str]] = None,
                 directory: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgs']] = None,
                 helm: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgs']] = None,
                 kustomize: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgs']] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 plugin: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgs']] = None,
                 ref: Optional[pulumi.Input[_builtins.str]] = None,
                 target_revision: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] repo_url: URL to the repository (Git or Helm) that contains the application manifests.
        :param pulumi.Input[_builtins.str] chart: Helm chart name. Must be specified for applications sourced from a Helm repo.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgs'] directory: Path/directory specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgs'] helm: Helm specific options.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgs'] kustomize: Kustomize specific options.
        :param pulumi.Input[_builtins.str] path: Directory path within the repository. Only valid for applications sourced from Git.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgs'] plugin: Config management plugin specific options.
        :param pulumi.Input[_builtins.str] ref: Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        :param pulumi.Input[_builtins.str] target_revision: Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        pulumi.set(__self__, "repo_url", repo_url)
        if chart is not None:
            pulumi.set(__self__, "chart", chart)
        if directory is not None:
            pulumi.set(__self__, "directory", directory)
        if helm is not None:
            pulumi.set(__self__, "helm", helm)
        if kustomize is not None:
            pulumi.set(__self__, "kustomize", kustomize)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if plugin is not None:
            pulumi.set(__self__, "plugin", plugin)
        if ref is not None:
            pulumi.set(__self__, "ref", ref)
        if target_revision is not None:
            pulumi.set(__self__, "target_revision", target_revision)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL to the repository (Git or Helm) that contains the application manifests.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repo_url", value)

    @_builtins.property
    @pulumi.getter
    def chart(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm chart name. Must be specified for applications sourced from a Helm repo.
        """
        return pulumi.get(self, "chart")

    @chart.setter
    def chart(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "chart", value)

    @_builtins.property
    @pulumi.getter
    def directory(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgs']]:
        """
        Path/directory specific options.
        """
        return pulumi.get(self, "directory")

    @directory.setter
    def directory(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgs']]):
        pulumi.set(self, "directory", value)

    @_builtins.property
    @pulumi.getter
    def helm(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgs']]:
        """
        Helm specific options.
        """
        return pulumi.get(self, "helm")

    @helm.setter
    def helm(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgs']]):
        pulumi.set(self, "helm", value)

    @_builtins.property
    @pulumi.getter
    def kustomize(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgs']]:
        """
        Kustomize specific options.
        """
        return pulumi.get(self, "kustomize")

    @kustomize.setter
    def kustomize(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgs']]):
        pulumi.set(self, "kustomize", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Directory path within the repository. Only valid for applications sourced from Git.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def plugin(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgs']]:
        """
        Config management plugin specific options.
        """
        return pulumi.get(self, "plugin")

    @plugin.setter
    def plugin(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgs']]):
        pulumi.set(self, "plugin", value)

    @_builtins.property
    @pulumi.getter
    def ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to another `source` within defined sources. See associated documentation on [Helm value files from external Git repository](https://argo-cd.readthedocs.io/en/stable/user-guide/multiple_sources/#helm-value-files-from-external-git-repository) regarding combining `ref` with `path` and/or `chart`.
        """
        return pulumi.get(self, "ref")

    @ref.setter
    def ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ref", value)

    @_builtins.property
    @pulumi.getter(name="targetRevision")
    def target_revision(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.
        """
        return pulumi.get(self, "target_revision")

    @target_revision.setter
    def target_revision(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_revision", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgsDict(TypedDict):
        exclude: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        include: NotRequired[pulumi.Input[_builtins.str]]
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        jsonnet: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgsDict']]
        """
        Jsonnet specific options.
        """
        recurse: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to scan a directory recursively for manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryArgs:
    def __init__(__self__, *,
                 exclude: Optional[pulumi.Input[_builtins.str]] = None,
                 include: Optional[pulumi.Input[_builtins.str]] = None,
                 jsonnet: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgs']] = None,
                 recurse: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] exclude: Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        :param pulumi.Input[_builtins.str] include: Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgs'] jsonnet: Jsonnet specific options.
        :param pulumi.Input[_builtins.bool] recurse: Whether to scan a directory recursively for manifests.
        """
        if exclude is not None:
            pulumi.set(__self__, "exclude", exclude)
        if include is not None:
            pulumi.set(__self__, "include", include)
        if jsonnet is not None:
            pulumi.set(__self__, "jsonnet", jsonnet)
        if recurse is not None:
            pulumi.set(__self__, "recurse", recurse)

    @_builtins.property
    @pulumi.getter
    def exclude(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly excluded from being used during manifest generation. This takes precedence over the `include` field. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
        """
        return pulumi.get(self, "exclude")

    @exclude.setter
    def exclude(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "exclude", value)

    @_builtins.property
    @pulumi.getter
    def include(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Glob pattern to match paths against that should be explicitly included during manifest generation. If this field is set, only matching manifests will be included. To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
        """
        return pulumi.get(self, "include")

    @include.setter
    def include(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "include", value)

    @_builtins.property
    @pulumi.getter
    def jsonnet(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgs']]:
        """
        Jsonnet specific options.
        """
        return pulumi.get(self, "jsonnet")

    @jsonnet.setter
    def jsonnet(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgs']]):
        pulumi.set(self, "jsonnet", value)

    @_builtins.property
    @pulumi.getter
    def recurse(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to scan a directory recursively for manifests.
        """
        return pulumi.get(self, "recurse")

    @recurse.setter
    def recurse(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "recurse", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgsDict(TypedDict):
        ext_vars: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgsDict']]]]
        """
        List of Jsonnet External Variables.
        """
        libs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Additional library search dirs.
        """
        tlas: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgsDict']]]]
        """
        List of Jsonnet Top-level Arguments
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetArgs:
    def __init__(__self__, *,
                 ext_vars: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]] = None,
                 libs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 tlas: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgs']]] ext_vars: List of Jsonnet External Variables.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] libs: Additional library search dirs.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgs']]] tlas: List of Jsonnet Top-level Arguments
        """
        if ext_vars is not None:
            pulumi.set(__self__, "ext_vars", ext_vars)
        if libs is not None:
            pulumi.set(__self__, "libs", libs)
        if tlas is not None:
            pulumi.set(__self__, "tlas", tlas)

    @_builtins.property
    @pulumi.getter(name="extVars")
    def ext_vars(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]:
        """
        List of Jsonnet External Variables.
        """
        return pulumi.get(self, "ext_vars")

    @ext_vars.setter
    def ext_vars(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgs']]]]):
        pulumi.set(self, "ext_vars", value)

    @_builtins.property
    @pulumi.getter
    def libs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Additional library search dirs.
        """
        return pulumi.get(self, "libs")

    @libs.setter
    def libs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "libs", value)

    @_builtins.property
    @pulumi.getter
    def tlas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]:
        """
        List of Jsonnet Top-level Arguments
        """
        return pulumi.get(self, "tlas")

    @tlas.setter
    def tlas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgs']]]]):
        pulumi.set(self, "tlas", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetExtVarArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgsDict(TypedDict):
        code: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Jsonnet variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of Jsonnet variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceDirectoryJsonnetTlaArgs:
    def __init__(__self__, *,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] code: Determines whether the variable should be evaluated as jsonnet code or treated as string.
        :param pulumi.Input[_builtins.str] name: Name of Jsonnet variable.
        :param pulumi.Input[_builtins.str] value: Value of Jsonnet variable.
        """
        if code is not None:
            pulumi.set(__self__, "code", code)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the variable should be evaluated as jsonnet code or treated as string.
        """
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of Jsonnet variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of Jsonnet variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgsDict(TypedDict):
        file_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgsDict']]]]
        """
        File parameters for the helm template.
        """
        ignore_missing_value_files: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgsDict']]]]
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        pass_credentials: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        release_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm release name. If omitted it will use the application name.
        """
        skip_crds: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        skip_schema_validation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        skip_tests: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        value_files: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Helm value files to use when generating a template.
        """
        values: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        values_object: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Helm version to use for templating (either "2" or "3").
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmArgs:
    def __init__(__self__, *,
                 file_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgs']]]] = None,
                 ignore_missing_value_files: Optional[pulumi.Input[_builtins.bool]] = None,
                 parameters: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgs']]]] = None,
                 pass_credentials: Optional[pulumi.Input[_builtins.bool]] = None,
                 release_name: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_crds: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_schema_validation: Optional[pulumi.Input[_builtins.bool]] = None,
                 skip_tests: Optional[pulumi.Input[_builtins.bool]] = None,
                 value_files: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 values: Optional[pulumi.Input[_builtins.str]] = None,
                 values_object: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgs']]] file_parameters: File parameters for the helm template.
        :param pulumi.Input[_builtins.bool] ignore_missing_value_files: Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgs']]] parameters: Helm parameters which are passed to the helm template command upon manifest generation.
        :param pulumi.Input[_builtins.bool] pass_credentials: If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        :param pulumi.Input[_builtins.str] release_name: Helm release name. If omitted it will use the application name.
        :param pulumi.Input[_builtins.bool] skip_crds: Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        :param pulumi.Input[_builtins.bool] skip_schema_validation: Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        :param pulumi.Input[_builtins.bool] skip_tests: Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] value_files: List of Helm value files to use when generating a template.
        :param pulumi.Input[_builtins.str] values: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] values_object: Helm values to be passed to 'helm template', typically defined as a block.
        :param pulumi.Input[_builtins.str] version: Helm version to use for templating (either "2" or "3").
        """
        if file_parameters is not None:
            pulumi.set(__self__, "file_parameters", file_parameters)
        if ignore_missing_value_files is not None:
            pulumi.set(__self__, "ignore_missing_value_files", ignore_missing_value_files)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)
        if pass_credentials is not None:
            pulumi.set(__self__, "pass_credentials", pass_credentials)
        if release_name is not None:
            pulumi.set(__self__, "release_name", release_name)
        if skip_crds is not None:
            pulumi.set(__self__, "skip_crds", skip_crds)
        if skip_schema_validation is not None:
            pulumi.set(__self__, "skip_schema_validation", skip_schema_validation)
        if skip_tests is not None:
            pulumi.set(__self__, "skip_tests", skip_tests)
        if value_files is not None:
            pulumi.set(__self__, "value_files", value_files)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if values_object is not None:
            pulumi.set(__self__, "values_object", values_object)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="fileParameters")
    def file_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgs']]]]:
        """
        File parameters for the helm template.
        """
        return pulumi.get(self, "file_parameters")

    @file_parameters.setter
    def file_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgs']]]]):
        pulumi.set(self, "file_parameters", value)

    @_builtins.property
    @pulumi.getter(name="ignoreMissingValueFiles")
    def ignore_missing_value_files(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prevents 'helm template' from failing when `value_files` do not exist locally by not appending them to 'helm template --values'.
        """
        return pulumi.get(self, "ignore_missing_value_files")

    @ignore_missing_value_files.setter
    def ignore_missing_value_files(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "ignore_missing_value_files", value)

    @_builtins.property
    @pulumi.getter
    def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgs']]]]:
        """
        Helm parameters which are passed to the helm template command upon manifest generation.
        """
        return pulumi.get(self, "parameters")

    @parameters.setter
    def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgs']]]]):
        pulumi.set(self, "parameters", value)

    @_builtins.property
    @pulumi.getter(name="passCredentials")
    def pass_credentials(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If true then adds '--pass-credentials' to Helm commands to pass credentials to all domains.
        """
        return pulumi.get(self, "pass_credentials")

    @pass_credentials.setter
    def pass_credentials(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "pass_credentials", value)

    @_builtins.property
    @pulumi.getter(name="releaseName")
    def release_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm release name. If omitted it will use the application name.
        """
        return pulumi.get(self, "release_name")

    @release_name.setter
    def release_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_name", value)

    @_builtins.property
    @pulumi.getter(name="skipCrds")
    def skip_crds(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to skip custom resource definition installation step (Helm's [--skip-crds](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/)).
        """
        return pulumi.get(self, "skip_crds")

    @skip_crds.setter
    def skip_crds(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_crds", value)

    @_builtins.property
    @pulumi.getter(name="skipSchemaValidation")
    def skip_schema_validation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip schema validation during helm template. Corresponds to helm --skip-schema-validation
        """
        return pulumi.get(self, "skip_schema_validation")

    @skip_schema_validation.setter
    def skip_schema_validation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_schema_validation", value)

    @_builtins.property
    @pulumi.getter(name="skipTests")
    def skip_tests(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to skip tests during helm template. Corresponds to helm --skip-tests
        """
        return pulumi.get(self, "skip_tests")

    @skip_tests.setter
    def skip_tests(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_tests", value)

    @_builtins.property
    @pulumi.getter(name="valueFiles")
    def value_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Helm value files to use when generating a template.
        """
        return pulumi.get(self, "value_files")

    @value_files.setter
    def value_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "value_files", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "values", value)

    @_builtins.property
    @pulumi.getter(name="valuesObject")
    def values_object(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Helm values to be passed to 'helm template', typically defined as a block.
        """
        return pulumi.get(self, "values_object")

    @values_object.setter
    def values_object(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "values_object", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Helm version to use for templating (either "2" or "3").
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of the Helm parameter.
        """
        path: pulumi.Input[_builtins.str]
        """
        Path to the file containing the values for the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmFileParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] path: Path to the file containing the values for the Helm parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the file containing the values for the Helm parameter.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgsDict(TypedDict):
        force_string: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the Helm parameter.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the Helm parameter.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceHelmParameterArgs:
    def __init__(__self__, *,
                 force_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] force_string: Determines whether to tell Helm to interpret booleans and numbers as strings.
        :param pulumi.Input[_builtins.str] name: Name of the Helm parameter.
        :param pulumi.Input[_builtins.str] value: Value of the Helm parameter.
        """
        if force_string is not None:
            pulumi.set(__self__, "force_string", force_string)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="forceString")
    def force_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether to tell Helm to interpret booleans and numbers as strings.
        """
        return pulumi.get(self, "force_string")

    @force_string.setter
    def force_string(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_string", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the Helm parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the Helm parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgsDict(TypedDict):
        common_annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional annotations to add to rendered manifests.
        """
        common_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        List of additional labels to add to rendered manifests.
        """
        force_common_annotations: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        force_common_labels: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        images: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of Kustomize image override specifications.
        """
        name_prefix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Prefix appended to resources for Kustomize apps.
        """
        name_suffix: NotRequired[pulumi.Input[_builtins.str]]
        """
        Suffix appended to resources for Kustomize apps.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of Kustomize to use for rendering manifests.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourceKustomizeArgs:
    def __init__(__self__, *,
                 common_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 common_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 force_common_annotations: Optional[pulumi.Input[_builtins.bool]] = None,
                 force_common_labels: Optional[pulumi.Input[_builtins.bool]] = None,
                 images: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 name_prefix: Optional[pulumi.Input[_builtins.str]] = None,
                 name_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_annotations: List of additional annotations to add to rendered manifests.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] common_labels: List of additional labels to add to rendered manifests.
        :param pulumi.Input[_builtins.bool] force_common_annotations: Indicates if to force applying common annotations to resources for kustomize apps.
        :param pulumi.Input[_builtins.bool] force_common_labels: Indicates if to force apply common labels to resources for kustomize apps.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] images: List of Kustomize image override specifications.
        :param pulumi.Input[_builtins.str] name_prefix: Prefix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] name_suffix: Suffix appended to resources for Kustomize apps.
        :param pulumi.Input[_builtins.str] version: Version of Kustomize to use for rendering manifests.
        """
        if common_annotations is not None:
            pulumi.set(__self__, "common_annotations", common_annotations)
        if common_labels is not None:
            pulumi.set(__self__, "common_labels", common_labels)
        if force_common_annotations is not None:
            pulumi.set(__self__, "force_common_annotations", force_common_annotations)
        if force_common_labels is not None:
            pulumi.set(__self__, "force_common_labels", force_common_labels)
        if images is not None:
            pulumi.set(__self__, "images", images)
        if name_prefix is not None:
            pulumi.set(__self__, "name_prefix", name_prefix)
        if name_suffix is not None:
            pulumi.set(__self__, "name_suffix", name_suffix)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="commonAnnotations")
    def common_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional annotations to add to rendered manifests.
        """
        return pulumi.get(self, "common_annotations")

    @common_annotations.setter
    def common_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="commonLabels")
    def common_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        List of additional labels to add to rendered manifests.
        """
        return pulumi.get(self, "common_labels")

    @common_labels.setter
    def common_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "common_labels", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonAnnotations")
    def force_common_annotations(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force applying common annotations to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_annotations")

    @force_common_annotations.setter
    def force_common_annotations(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_annotations", value)

    @_builtins.property
    @pulumi.getter(name="forceCommonLabels")
    def force_common_labels(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Indicates if to force apply common labels to resources for kustomize apps.
        """
        return pulumi.get(self, "force_common_labels")

    @force_common_labels.setter
    def force_common_labels(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "force_common_labels", value)

    @_builtins.property
    @pulumi.getter
    def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of Kustomize image override specifications.
        """
        return pulumi.get(self, "images")

    @images.setter
    def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "images", value)

    @_builtins.property
    @pulumi.getter(name="namePrefix")
    def name_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Prefix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_prefix")

    @name_prefix.setter
    def name_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_prefix", value)

    @_builtins.property
    @pulumi.getter(name="nameSuffix")
    def name_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Suffix appended to resources for Kustomize apps.
        """
        return pulumi.get(self, "name_suffix")

    @name_suffix.setter
    def name_suffix(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name_suffix", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of Kustomize to use for rendering manifests.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgsDict(TypedDict):
        envs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgsDict']]]]
        """
        Environment variables passed to the plugin.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginArgs:
    def __init__(__self__, *,
                 envs: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgs']]]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgs']]] envs: Environment variables passed to the plugin.
        :param pulumi.Input[_builtins.str] name: Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        if envs is not None:
            pulumi.set(__self__, "envs", envs)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def envs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgs']]]]:
        """
        Environment variables passed to the plugin.
        """
        return pulumi.get(self, "envs")

    @envs.setter
    def envs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgs']]]]):
        pulumi.set(self, "envs", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the plugin. Only set the plugin name if the plugin is defined in `argocd-cm`. If the plugin is defined as a sidecar, omit the name. The plugin will be automatically matched with the Application according to the plugin's discovery rules.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgsDict(TypedDict):
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the environment variable.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value of the environment variable.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSourcePluginEnvArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of the environment variable.
        :param pulumi.Input[_builtins.str] value: Value of the environment variable.
        """
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the environment variable.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value of the environment variable.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgsDict(TypedDict):
        automated: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgsDict']]
        """
        Whether to automatically keep an application synced to the target revision.
        """
        managed_namespace_metadata: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict']]
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        retry: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgsDict']]
        """
        Controls failed sync retry behavior.
        """
        sync_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyArgs:
    def __init__(__self__, *,
                 automated: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgs']] = None,
                 managed_namespace_metadata: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']] = None,
                 retry: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgs']] = None,
                 sync_options: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgs'] automated: Whether to automatically keep an application synced to the target revision.
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgs'] managed_namespace_metadata: Controls metadata in the given namespace (if `CreateNamespace=true`).
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgs'] retry: Controls failed sync retry behavior.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] sync_options: List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        if automated is not None:
            pulumi.set(__self__, "automated", automated)
        if managed_namespace_metadata is not None:
            pulumi.set(__self__, "managed_namespace_metadata", managed_namespace_metadata)
        if retry is not None:
            pulumi.set(__self__, "retry", retry)
        if sync_options is not None:
            pulumi.set(__self__, "sync_options", sync_options)

    @_builtins.property
    @pulumi.getter
    def automated(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgs']]:
        """
        Whether to automatically keep an application synced to the target revision.
        """
        return pulumi.get(self, "automated")

    @automated.setter
    def automated(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgs']]):
        pulumi.set(self, "automated", value)

    @_builtins.property
    @pulumi.getter(name="managedNamespaceMetadata")
    def managed_namespace_metadata(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]:
        """
        Controls metadata in the given namespace (if `CreateNamespace=true`).
        """
        return pulumi.get(self, "managed_namespace_metadata")

    @managed_namespace_metadata.setter
    def managed_namespace_metadata(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgs']]):
        pulumi.set(self, "managed_namespace_metadata", value)

    @_builtins.property
    @pulumi.getter
    def retry(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgs']]:
        """
        Controls failed sync retry behavior.
        """
        return pulumi.get(self, "retry")

    @retry.setter
    def retry(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgs']]):
        pulumi.set(self, "retry", value)

    @_builtins.property
    @pulumi.getter(name="syncOptions")
    def sync_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of sync options. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/.
        """
        return pulumi.get(self, "sync_options")

    @sync_options.setter
    def sync_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "sync_options", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgsDict(TypedDict):
        allow_empty: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allows apps have zero live resources.
        """
        prune: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        self_heal: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyAutomatedArgs:
    def __init__(__self__, *,
                 allow_empty: Optional[pulumi.Input[_builtins.bool]] = None,
                 prune: Optional[pulumi.Input[_builtins.bool]] = None,
                 self_heal: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] allow_empty: Allows apps have zero live resources.
        :param pulumi.Input[_builtins.bool] prune: Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        :param pulumi.Input[_builtins.bool] self_heal: Whether to revert resources back to their desired state upon modification in the cluster.
        """
        if allow_empty is not None:
            pulumi.set(__self__, "allow_empty", allow_empty)
        if prune is not None:
            pulumi.set(__self__, "prune", prune)
        if self_heal is not None:
            pulumi.set(__self__, "self_heal", self_heal)

    @_builtins.property
    @pulumi.getter(name="allowEmpty")
    def allow_empty(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allows apps have zero live resources.
        """
        return pulumi.get(self, "allow_empty")

    @allow_empty.setter
    def allow_empty(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "allow_empty", value)

    @_builtins.property
    @pulumi.getter
    def prune(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync.
        """
        return pulumi.get(self, "prune")

    @prune.setter
    def prune(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "prune", value)

    @_builtins.property
    @pulumi.getter(name="selfHeal")
    def self_heal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether to revert resources back to their desired state upon modification in the cluster.
        """
        return pulumi.get(self, "self_heal")

    @self_heal.setter
    def self_heal(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "self_heal", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict(TypedDict):
        annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Annotations to apply to the namespace.
        """
        labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
        """
        Labels to apply to the namespace.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyManagedNamespaceMetadataArgs:
    def __init__(__self__, *,
                 annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations to apply to the namespace.
        :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Labels to apply to the namespace.
        """
        if annotations is not None:
            pulumi.set(__self__, "annotations", annotations)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)

    @_builtins.property
    @pulumi.getter
    def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Annotations to apply to the namespace.
        """
        return pulumi.get(self, "annotations")

    @annotations.setter
    def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "annotations", value)

    @_builtins.property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
        """
        Labels to apply to the namespace.
        """
        return pulumi.get(self, "labels")

    @labels.setter
    def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "labels", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgsDict(TypedDict):
        backoff: NotRequired[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgsDict']]
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        limit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryArgs:
    def __init__(__self__, *,
                 backoff: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgs']] = None,
                 limit: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgs'] backoff: Controls how to backoff on subsequent retries of failed syncs.
        :param pulumi.Input[_builtins.str] limit: Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        if backoff is not None:
            pulumi.set(__self__, "backoff", backoff)
        if limit is not None:
            pulumi.set(__self__, "limit", limit)

    @_builtins.property
    @pulumi.getter
    def backoff(self) -> Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgs']]:
        """
        Controls how to backoff on subsequent retries of failed syncs.
        """
        return pulumi.get(self, "backoff")

    @backoff.setter
    def backoff(self, value: Optional[pulumi.Input['GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgs']]):
        pulumi.set(self, "backoff", value)

    @_builtins.property
    @pulumi.getter
    def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.
        """
        return pulumi.get(self, "limit")

    @limit.setter
    def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "limit", value)


if not MYPY:
    class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        factor: NotRequired[pulumi.Input[_builtins.str]]
        """
        Factor to multiply the base duration after each failed retry.
        """
        max_duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
elif False:
    GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GitopsApplicationsetApplicationsetSpecTemplateSpecSyncPolicyRetryBackoffArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 factor: Optional[pulumi.Input[_builtins.str]] = None,
                 max_duration: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        :param pulumi.Input[_builtins.str] factor: Factor to multiply the base duration after each failed retry.
        :param pulumi.Input[_builtins.str] max_duration: Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if factor is not None:
            pulumi.set(__self__, "factor", factor)
        if max_duration is not None:
            pulumi.set(__self__, "max_duration", max_duration)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter
    def factor(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Factor to multiply the base duration after each failed retry.
        """
        return pulumi.get(self, "factor")

    @factor.setter
    def factor(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "factor", value)

    @_builtins.property
    @pulumi.getter(name="maxDuration")
    def max_duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Maximum amount of time allowed for the backoff strategy. Default unit is seconds, but could also be a duration (e.g. `2m`, `1h`), as a string.
        """
        return pulumi.get(self, "max_duration")

    @max_duration.setter
    def max_duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "max_duration", value)


if not MYPY:
    class HarRegistryConfigArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        Type of registry (VIRTUAL or UPSTREAM)
        """
        auth_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Type of authentication for UPSTREAM registry type (UserPassword, Anonymous)
        """
        auths: NotRequired[pulumi.Input[Sequence[pulumi.Input['HarRegistryConfigAuthArgsDict']]]]
        """
        Authentication configuration for UPSTREAM registry type
        """
        source: NotRequired[pulumi.Input[_builtins.str]]
        """
        Upstream source
        """
        upstream_proxies: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of upstream proxies for VIRTUAL registry type
        """
        url: NotRequired[pulumi.Input[_builtins.str]]
        """
        URL of the upstream (required if type=UPSTREAM & package_type=HELM)
        """
elif False:
    HarRegistryConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class HarRegistryConfigArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 auth_type: Optional[pulumi.Input[_builtins.str]] = None,
                 auths: Optional[pulumi.Input[Sequence[pulumi.Input['HarRegistryConfigAuthArgs']]]] = None,
                 source: Optional[pulumi.Input[_builtins.str]] = None,
                 upstream_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 url: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] type: Type of registry (VIRTUAL or UPSTREAM)
        :param pulumi.Input[_builtins.str] auth_type: Type of authentication for UPSTREAM registry type (UserPassword, Anonymous)
        :param pulumi.Input[Sequence[pulumi.Input['HarRegistryConfigAuthArgs']]] auths: Authentication configuration for UPSTREAM registry type
        :param pulumi.Input[_builtins.str] source: Upstream source
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] upstream_proxies: List of upstream proxies for VIRTUAL registry type
        :param pulumi.Input[_builtins.str] url: URL of the upstream (required if type=UPSTREAM & package_type=HELM)
        """
        pulumi.set(__self__, "type", type)
        if auth_type is not None:
            pulumi.set(__self__, "auth_type", auth_type)
        if auths is not None:
            pulumi.set(__self__, "auths", auths)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if upstream_proxies is not None:
            pulumi.set(__self__, "upstream_proxies", upstream_proxies)
        if url is not None:
            pulumi.set(__self__, "url", url)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of registry (VIRTUAL or UPSTREAM)
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="authType")
    def auth_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Type of authentication for UPSTREAM registry type (UserPassword, Anonymous)
        """
        return pulumi.get(self, "auth_type")

    @auth_type.setter
    def auth_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "auth_type", value)

    @_builtins.property
    @pulumi.getter
    def auths(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['HarRegistryConfigAuthArgs']]]]:
        """
        Authentication configuration for UPSTREAM registry type
        """
        return pulumi.get(self, "auths")

    @auths.setter
    def auths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['HarRegistryConfigAuthArgs']]]]):
        pulumi.set(self, "auths", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Upstream source
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter(name="upstreamProxies")
    def upstream_proxies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of upstream proxies for VIRTUAL registry type
        """
        return pulumi.get(self, "upstream_proxies")

    @upstream_proxies.setter
    def upstream_proxies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "upstream_proxies", value)

    @_builtins.property
    @pulumi.getter
    def url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the upstream (required if type=UPSTREAM & package_type=HELM)
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "url", value)


if not MYPY:
    class HarRegistryConfigAuthArgsDict(TypedDict):
        auth_type: pulumi.Input[_builtins.str]
        """
        Type of authentication (UserPassword, Anonymous)
        """
        access_key: NotRequired[pulumi.Input[_builtins.str]]
        access_key_identifier: NotRequired[pulumi.Input[_builtins.str]]
        access_key_secret_path: NotRequired[pulumi.Input[_builtins.str]]
        secret_identifier: NotRequired[pulumi.Input[_builtins.str]]
        """
        Secret identifier for UserPassword auth type
        """
        secret_key_identifier: NotRequired[pulumi.Input[_builtins.str]]
        secret_key_secret_path: NotRequired[pulumi.Input[_builtins.str]]
        secret_space_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Secret space path for UserPassword auth type
        """
        user_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for UserPassword auth type
        """
elif False:
    HarRegistryConfigAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class HarRegistryConfigAuthArgs:
    def __init__(__self__, *,
                 auth_type: pulumi.Input[_builtins.str],
                 access_key: Optional[pulumi.Input[_builtins.str]] = None,
                 access_key_identifier: Optional[pulumi.Input[_builtins.str]] = None,
                 access_key_secret_path: Optional[pulumi.Input[_builtins.str]] = None,
                 secret_identifier: Optional[pulumi.Input[_builtins.str]] = None,
                 secret_key_identifier: Optional[pulumi.Input[_builtins.str]] = None,
                 secret_key_secret_path: Optional[pulumi.Input[_builtins.str]] = None,
                 secret_space_path: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] auth_type: Type of authentication (UserPassword, Anonymous)
        :param pulumi.Input[_builtins.str] secret_identifier: Secret identifier for UserPassword auth type
        :param pulumi.Input[_builtins.str] secret_space_path: Secret space path for UserPassword auth type
        :param pulumi.Input[_builtins.str] user_name: Username for UserPassword auth type
        """
        pulumi.set(__self__, "auth_type", auth_type)
        if access_key is not None:
            pulumi.set(__self__, "access_key", access_key)
        if access_key_identifier is not None:
            pulumi.set(__self__, "access_key_identifier", access_key_identifier)
        if access_key_secret_path is not None:
            pulumi.set(__self__, "access_key_secret_path", access_key_secret_path)
        if secret_identifier is not None:
            pulumi.set(__self__, "secret_identifier", secret_identifier)
        if secret_key_identifier is not None:
            pulumi.set(__self__, "secret_key_identifier", secret_key_identifier)
        if secret_key_secret_path is not None:
            pulumi.set(__self__, "secret_key_secret_path", secret_key_secret_path)
        if secret_space_path is not None:
            pulumi.set(__self__, "secret_space_path", secret_space_path)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @_builtins.property
    @pulumi.getter(name="authType")
    def auth_type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of authentication (UserPassword, Anonymous)
        """
        return pulumi.get(self, "auth_type")

    @auth_type.setter
    def auth_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "auth_type", value)

    @_builtins.property
    @pulumi.getter(name="accessKey")
    def access_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "access_key")

    @access_key.setter
    def access_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "access_key", value)

    @_builtins.property
    @pulumi.getter(name="accessKeyIdentifier")
    def access_key_identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "access_key_identifier")

    @access_key_identifier.setter
    def access_key_identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "access_key_identifier", value)

    @_builtins.property
    @pulumi.getter(name="accessKeySecretPath")
    def access_key_secret_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "access_key_secret_path")

    @access_key_secret_path.setter
    def access_key_secret_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "access_key_secret_path", value)

    @_builtins.property
    @pulumi.getter(name="secretIdentifier")
    def secret_identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Secret identifier for UserPassword auth type
        """
        return pulumi.get(self, "secret_identifier")

    @secret_identifier.setter
    def secret_identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "secret_identifier", value)

    @_builtins.property
    @pulumi.getter(name="secretKeyIdentifier")
    def secret_key_identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "secret_key_identifier")

    @secret_key_identifier.setter
    def secret_key_identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "secret_key_identifier", value)

    @_builtins.property
    @pulumi.getter(name="secretKeySecretPath")
    def secret_key_secret_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "secret_key_secret_path")

    @secret_key_secret_path.setter
    def secret_key_secret_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "secret_key_secret_path", value)

    @_builtins.property
    @pulumi.getter(name="secretSpacePath")
    def secret_space_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Secret space path for UserPassword auth type
        """
        return pulumi.get(self, "secret_space_path")

    @secret_space_path.setter
    def secret_space_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "secret_space_path", value)

    @_builtins.property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for UserPassword auth type
        """
        return pulumi.get(self, "user_name")

    @user_name.setter
    def user_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "user_name", value)


if not MYPY:
    class HelmConnectorCredentialsArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    HelmConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class HelmConnectorCredentialsArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class IdpCatalogEntityGitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        is_harness_code_repo: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the repo is a Harness Code repo
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    IdpCatalogEntityGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class IdpCatalogEntityGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch_name: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 is_harness_code_repo: Optional[pulumi.Input[_builtins.bool]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch_name: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.bool] is_harness_code_repo: If the repo is a Harness Code repo
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch_name is not None:
            pulumi.set(__self__, "branch_name", branch_name)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if is_harness_code_repo is not None:
            pulumi.set(__self__, "is_harness_code_repo", is_harness_code_repo)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="isHarnessCodeRepo")
    def is_harness_code_repo(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the repo is a Harness Code repo
        """
        return pulumi.get(self, "is_harness_code_repo")

    @is_harness_code_repo.setter
    def is_harness_code_repo(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_harness_code_repo", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class InfraModuleTestingTestingMetadataArgsDict(TypedDict):
        account: NotRequired[pulumi.Input[_builtins.str]]
        """
        Account is the internal customer account ID
        """
        org: NotRequired[pulumi.Input[_builtins.str]]
        """
        Organization identifier
        """
        pipelines: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Pipelines where the testing is enabled
        """
        project: NotRequired[pulumi.Input[_builtins.str]]
        """
        Project identifier
        """
        provider_connector: NotRequired[pulumi.Input[_builtins.str]]
        """
        Provider connector for testing purposes
        """
        provisioner_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Provisioner type for testing purposes
        """
        provisioner_version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Provisioner version for testing purposes
        """
        release_pipeline: NotRequired[pulumi.Input[_builtins.str]]
        """
        Release pipeline
        """
elif False:
    InfraModuleTestingTestingMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InfraModuleTestingTestingMetadataArgs:
    def __init__(__self__, *,
                 account: Optional[pulumi.Input[_builtins.str]] = None,
                 org: Optional[pulumi.Input[_builtins.str]] = None,
                 pipelines: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 project: Optional[pulumi.Input[_builtins.str]] = None,
                 provider_connector: Optional[pulumi.Input[_builtins.str]] = None,
                 provisioner_type: Optional[pulumi.Input[_builtins.str]] = None,
                 provisioner_version: Optional[pulumi.Input[_builtins.str]] = None,
                 release_pipeline: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] account: Account is the internal customer account ID
        :param pulumi.Input[_builtins.str] org: Organization identifier
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] pipelines: Pipelines where the testing is enabled
        :param pulumi.Input[_builtins.str] project: Project identifier
        :param pulumi.Input[_builtins.str] provider_connector: Provider connector for testing purposes
        :param pulumi.Input[_builtins.str] provisioner_type: Provisioner type for testing purposes
        :param pulumi.Input[_builtins.str] provisioner_version: Provisioner version for testing purposes
        :param pulumi.Input[_builtins.str] release_pipeline: Release pipeline
        """
        if account is not None:
            pulumi.set(__self__, "account", account)
        if org is not None:
            pulumi.set(__self__, "org", org)
        if pipelines is not None:
            pulumi.set(__self__, "pipelines", pipelines)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if provider_connector is not None:
            pulumi.set(__self__, "provider_connector", provider_connector)
        if provisioner_type is not None:
            pulumi.set(__self__, "provisioner_type", provisioner_type)
        if provisioner_version is not None:
            pulumi.set(__self__, "provisioner_version", provisioner_version)
        if release_pipeline is not None:
            pulumi.set(__self__, "release_pipeline", release_pipeline)

    @_builtins.property
    @pulumi.getter
    def account(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Account is the internal customer account ID
        """
        return pulumi.get(self, "account")

    @account.setter
    def account(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "account", value)

    @_builtins.property
    @pulumi.getter
    def org(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Organization identifier
        """
        return pulumi.get(self, "org")

    @org.setter
    def org(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "org", value)

    @_builtins.property
    @pulumi.getter
    def pipelines(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Pipelines where the testing is enabled
        """
        return pulumi.get(self, "pipelines")

    @pipelines.setter
    def pipelines(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "pipelines", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Project identifier
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="providerConnector")
    def provider_connector(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Provider connector for testing purposes
        """
        return pulumi.get(self, "provider_connector")

    @provider_connector.setter
    def provider_connector(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "provider_connector", value)

    @_builtins.property
    @pulumi.getter(name="provisionerType")
    def provisioner_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Provisioner type for testing purposes
        """
        return pulumi.get(self, "provisioner_type")

    @provisioner_type.setter
    def provisioner_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "provisioner_type", value)

    @_builtins.property
    @pulumi.getter(name="provisionerVersion")
    def provisioner_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Provisioner version for testing purposes
        """
        return pulumi.get(self, "provisioner_version")

    @provisioner_version.setter
    def provisioner_version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "provisioner_version", value)

    @_builtins.property
    @pulumi.getter(name="releasePipeline")
    def release_pipeline(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Release pipeline
        """
        return pulumi.get(self, "release_pipeline")

    @release_pipeline.setter
    def release_pipeline(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "release_pipeline", value)


if not MYPY:
    class InfraVariableSetConnectorArgsDict(TypedDict):
        connector_ref: pulumi.Input[_builtins.str]
        """
        Connector Ref is the reference to the connector
        """
        type: pulumi.Input[_builtins.str]
        """
        Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
elif False:
    InfraVariableSetConnectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InfraVariableSetConnectorArgs:
    def __init__(__self__, *,
                 connector_ref: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] connector_ref: Connector Ref is the reference to the connector
        :param pulumi.Input[_builtins.str] type: Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
        pulumi.set(__self__, "connector_ref", connector_ref)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Connector Ref is the reference to the connector
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)


if not MYPY:
    class InfraVariableSetEnvironmentVariableArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key is the identifier for the variable. Must be unique within the Variable Set.
        """
        value: pulumi.Input[_builtins.str]
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        value_type: pulumi.Input[_builtins.str]
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
elif False:
    InfraVariableSetEnvironmentVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InfraVariableSetEnvironmentVariableArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str],
                 value_type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key is the identifier for the variable. Must be unique within the Variable Set.
        :param pulumi.Input[_builtins.str] value: Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        :param pulumi.Input[_builtins.str] value_type: Value type indicates the value type of the variable. Currently we support string and secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key is the identifier for the variable. Must be unique within the Variable Set.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> pulumi.Input[_builtins.str]:
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class InfraVariableSetTerraformVariableArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key is the identifier for the variable. Must be unique within the Variable Set.
        """
        value: pulumi.Input[_builtins.str]
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        value_type: pulumi.Input[_builtins.str]
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
elif False:
    InfraVariableSetTerraformVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InfraVariableSetTerraformVariableArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str],
                 value_type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key is the identifier for the variable. Must be unique within the Variable Set.
        :param pulumi.Input[_builtins.str] value: Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        :param pulumi.Input[_builtins.str] value_type: Value type indicates the value type of the variable. Currently we support string and secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key is the identifier for the variable. Must be unique within the Variable Set.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> pulumi.Input[_builtins.str]:
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class InfraVariableSetTerraformVariableFileArgsDict(TypedDict):
        repository: pulumi.Input[_builtins.str]
        """
        Repository is the name of the repository to fetch the code from.
        """
        repository_connector: pulumi.Input[_builtins.str]
        """
        Repository connector is the reference to the connector used to fetch the variables.
        """
        repository_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        """
        repository_commit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        """
        repository_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository path is the path in which the variables reside.
        """
        repository_sha: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
elif False:
    InfraVariableSetTerraformVariableFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InfraVariableSetTerraformVariableFileArgs:
    def __init__(__self__, *,
                 repository: pulumi.Input[_builtins.str],
                 repository_connector: pulumi.Input[_builtins.str],
                 repository_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 repository_commit: Optional[pulumi.Input[_builtins.str]] = None,
                 repository_path: Optional[pulumi.Input[_builtins.str]] = None,
                 repository_sha: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] repository: Repository is the name of the repository to fetch the code from.
        :param pulumi.Input[_builtins.str] repository_connector: Repository connector is the reference to the connector used to fetch the variables.
        :param pulumi.Input[_builtins.str] repository_branch: Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        :param pulumi.Input[_builtins.str] repository_commit: Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        :param pulumi.Input[_builtins.str] repository_path: Repository path is the path in which the variables reside.
        :param pulumi.Input[_builtins.str] repository_sha: Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
        pulumi.set(__self__, "repository", repository)
        pulumi.set(__self__, "repository_connector", repository_connector)
        if repository_branch is not None:
            pulumi.set(__self__, "repository_branch", repository_branch)
        if repository_commit is not None:
            pulumi.set(__self__, "repository_commit", repository_commit)
        if repository_path is not None:
            pulumi.set(__self__, "repository_path", repository_path)
        if repository_sha is not None:
            pulumi.set(__self__, "repository_sha", repository_sha)

    @_builtins.property
    @pulumi.getter
    def repository(self) -> pulumi.Input[_builtins.str]:
        """
        Repository is the name of the repository to fetch the code from.
        """
        return pulumi.get(self, "repository")

    @repository.setter
    def repository(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repository", value)

    @_builtins.property
    @pulumi.getter(name="repositoryConnector")
    def repository_connector(self) -> pulumi.Input[_builtins.str]:
        """
        Repository connector is the reference to the connector used to fetch the variables.
        """
        return pulumi.get(self, "repository_connector")

    @repository_connector.setter
    def repository_connector(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repository_connector", value)

    @_builtins.property
    @pulumi.getter(name="repositoryBranch")
    def repository_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        """
        return pulumi.get(self, "repository_branch")

    @repository_branch.setter
    def repository_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_branch", value)

    @_builtins.property
    @pulumi.getter(name="repositoryCommit")
    def repository_commit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        """
        return pulumi.get(self, "repository_commit")

    @repository_commit.setter
    def repository_commit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_commit", value)

    @_builtins.property
    @pulumi.getter(name="repositoryPath")
    def repository_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository path is the path in which the variables reside.
        """
        return pulumi.get(self, "repository_path")

    @repository_path.setter
    def repository_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_path", value)

    @_builtins.property
    @pulumi.getter(name="repositorySha")
    def repository_sha(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
        return pulumi.get(self, "repository_sha")

    @repository_sha.setter
    def repository_sha(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_sha", value)


if not MYPY:
    class InfrastructureGitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        import_from_git: NotRequired[pulumi.Input[_builtins.bool]]
        """
        import infrastructure from git
        """
        is_force_import: NotRequired[pulumi.Input[_builtins.bool]]
        """
        force import infrastructure from remote even if same file path already exist
        """
        is_harnesscode_repo: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the gitProvider is HarnessCode
        """
        is_new_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If a new branch creation is requested.
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating infrastructure.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating infrastructure.
        """
        load_from_cache: NotRequired[pulumi.Input[_builtins.str]]
        """
        If the Entity is to be fetched from cache
        """
        load_from_fallback_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the Entity is to be fetched from fallbackBranch
        """
        parent_entity_connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Parent Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        parent_entity_repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository where parent entity lies.
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    InfrastructureGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InfrastructureGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 import_from_git: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_force_import: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_harnesscode_repo: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_new_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 load_from_cache: Optional[pulumi.Input[_builtins.str]] = None,
                 load_from_fallback_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 parent_entity_connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 parent_entity_repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.bool] import_from_git: import infrastructure from git
        :param pulumi.Input[_builtins.bool] is_force_import: force import infrastructure from remote even if same file path already exist
        :param pulumi.Input[_builtins.bool] is_harnesscode_repo: If the gitProvider is HarnessCode
        :param pulumi.Input[_builtins.bool] is_new_branch: If a new branch creation is requested.
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating infrastructure.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating infrastructure.
        :param pulumi.Input[_builtins.str] load_from_cache: If the Entity is to be fetched from cache
        :param pulumi.Input[_builtins.bool] load_from_fallback_branch: If the Entity is to be fetched from fallbackBranch
        :param pulumi.Input[_builtins.str] parent_entity_connector_ref: Identifier of the Harness Connector used for CRUD operations on the Parent Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] parent_entity_repo_name: Name of the repository where parent entity lies.
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch is not None:
            pulumi.set(__self__, "branch", branch)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if import_from_git is not None:
            pulumi.set(__self__, "import_from_git", import_from_git)
        if is_force_import is not None:
            pulumi.set(__self__, "is_force_import", is_force_import)
        if is_harnesscode_repo is not None:
            pulumi.set(__self__, "is_harnesscode_repo", is_harnesscode_repo)
        if is_new_branch is not None:
            pulumi.set(__self__, "is_new_branch", is_new_branch)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if load_from_cache is not None:
            pulumi.set(__self__, "load_from_cache", load_from_cache)
        if load_from_fallback_branch is not None:
            pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        if parent_entity_connector_ref is not None:
            pulumi.set(__self__, "parent_entity_connector_ref", parent_entity_connector_ref)
        if parent_entity_repo_name is not None:
            pulumi.set(__self__, "parent_entity_repo_name", parent_entity_repo_name)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="importFromGit")
    def import_from_git(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        import infrastructure from git
        """
        return pulumi.get(self, "import_from_git")

    @import_from_git.setter
    def import_from_git(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "import_from_git", value)

    @_builtins.property
    @pulumi.getter(name="isForceImport")
    def is_force_import(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        force import infrastructure from remote even if same file path already exist
        """
        return pulumi.get(self, "is_force_import")

    @is_force_import.setter
    def is_force_import(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_force_import", value)

    @_builtins.property
    @pulumi.getter(name="isHarnesscodeRepo")
    def is_harnesscode_repo(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the gitProvider is HarnessCode
        """
        return pulumi.get(self, "is_harnesscode_repo")

    @is_harnesscode_repo.setter
    def is_harnesscode_repo(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_harnesscode_repo", value)

    @_builtins.property
    @pulumi.getter(name="isNewBranch")
    def is_new_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If a new branch creation is requested.
        """
        return pulumi.get(self, "is_new_branch")

    @is_new_branch.setter
    def is_new_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_new_branch", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating infrastructure.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating infrastructure.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="loadFromCache")
    def load_from_cache(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        If the Entity is to be fetched from cache
        """
        return pulumi.get(self, "load_from_cache")

    @load_from_cache.setter
    def load_from_cache(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "load_from_cache", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the Entity is to be fetched from fallbackBranch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="parentEntityConnectorRef")
    def parent_entity_connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Parent Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "parent_entity_connector_ref")

    @parent_entity_connector_ref.setter
    def parent_entity_connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "parent_entity_connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="parentEntityRepoName")
    def parent_entity_repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository where parent entity lies.
        """
        return pulumi.get(self, "parent_entity_repo_name")

    @parent_entity_repo_name.setter
    def parent_entity_repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "parent_entity_repo_name", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class InputSetGitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        is_harness_code_repo: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the repo is harness code.
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        parent_entity_connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Connector reference for Parent Entity (Pipeline). To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        parent_entity_repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository name for Parent Entity (Pipeline).
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    InputSetGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InputSetGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch_name: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 is_harness_code_repo: Optional[pulumi.Input[_builtins.bool]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 parent_entity_connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 parent_entity_repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch_name: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.bool] is_harness_code_repo: If the repo is harness code.
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] parent_entity_connector_ref: Connector reference for Parent Entity (Pipeline). To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] parent_entity_repo_name: Repository name for Parent Entity (Pipeline).
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch_name is not None:
            pulumi.set(__self__, "branch_name", branch_name)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if is_harness_code_repo is not None:
            pulumi.set(__self__, "is_harness_code_repo", is_harness_code_repo)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if parent_entity_connector_ref is not None:
            pulumi.set(__self__, "parent_entity_connector_ref", parent_entity_connector_ref)
        if parent_entity_repo_name is not None:
            pulumi.set(__self__, "parent_entity_repo_name", parent_entity_repo_name)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="isHarnessCodeRepo")
    def is_harness_code_repo(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the repo is harness code.
        """
        return pulumi.get(self, "is_harness_code_repo")

    @is_harness_code_repo.setter
    def is_harness_code_repo(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_harness_code_repo", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="parentEntityConnectorRef")
    def parent_entity_connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Connector reference for Parent Entity (Pipeline). To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "parent_entity_connector_ref")

    @parent_entity_connector_ref.setter
    def parent_entity_connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "parent_entity_connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="parentEntityRepoName")
    def parent_entity_repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository name for Parent Entity (Pipeline).
        """
        return pulumi.get(self, "parent_entity_repo_name")

    @parent_entity_repo_name.setter
    def parent_entity_repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "parent_entity_repo_name", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class InputSetGitImportInfoArgsDict(TypedDict):
        branch_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        is_force_import: NotRequired[pulumi.Input[_builtins.bool]]
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
elif False:
    InputSetGitImportInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InputSetGitImportInfoArgs:
    def __init__(__self__, *,
                 branch_name: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 is_force_import: Optional[pulumi.Input[_builtins.bool]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_name: Name of the branch.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        """
        if branch_name is not None:
            pulumi.set(__self__, "branch_name", branch_name)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if is_force_import is not None:
            pulumi.set(__self__, "is_force_import", is_force_import)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="isForceImport")
    def is_force_import(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "is_force_import")

    @is_force_import.setter
    def is_force_import(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_force_import", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)


if not MYPY:
    class InputSetInputSetImportRequestArgsDict(TypedDict):
        input_set_description: NotRequired[pulumi.Input[_builtins.str]]
        """
        Description of the input set.
        """
        input_set_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the input set.
        """
elif False:
    InputSetInputSetImportRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InputSetInputSetImportRequestArgs:
    def __init__(__self__, *,
                 input_set_description: Optional[pulumi.Input[_builtins.str]] = None,
                 input_set_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] input_set_description: Description of the input set.
        :param pulumi.Input[_builtins.str] input_set_name: Name of the input set.
        """
        if input_set_description is not None:
            pulumi.set(__self__, "input_set_description", input_set_description)
        if input_set_name is not None:
            pulumi.set(__self__, "input_set_name", input_set_name)

    @_builtins.property
    @pulumi.getter(name="inputSetDescription")
    def input_set_description(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Description of the input set.
        """
        return pulumi.get(self, "input_set_description")

    @input_set_description.setter
    def input_set_description(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "input_set_description", value)

    @_builtins.property
    @pulumi.getter(name="inputSetName")
    def input_set_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the input set.
        """
        return pulumi.get(self, "input_set_name")

    @input_set_name.setter
    def input_set_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "input_set_name", value)


if not MYPY:
    class JenkinsConnectorAuthArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        Can be one of UsernamePassword, Anonymous, Bearer Token(HTTP Header)
        """
        jenkins_bearer_token: NotRequired[pulumi.Input['JenkinsConnectorAuthJenkinsBearerTokenArgsDict']]
        """
        Authenticate to App Dynamics using bearer token.
        """
        jenkins_user_name_password: NotRequired[pulumi.Input['JenkinsConnectorAuthJenkinsUserNamePasswordArgsDict']]
        """
        Authenticate to App Dynamics using user name and password.
        """
elif False:
    JenkinsConnectorAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class JenkinsConnectorAuthArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 jenkins_bearer_token: Optional[pulumi.Input['JenkinsConnectorAuthJenkinsBearerTokenArgs']] = None,
                 jenkins_user_name_password: Optional[pulumi.Input['JenkinsConnectorAuthJenkinsUserNamePasswordArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] type: Can be one of UsernamePassword, Anonymous, Bearer Token(HTTP Header)
        :param pulumi.Input['JenkinsConnectorAuthJenkinsBearerTokenArgs'] jenkins_bearer_token: Authenticate to App Dynamics using bearer token.
        :param pulumi.Input['JenkinsConnectorAuthJenkinsUserNamePasswordArgs'] jenkins_user_name_password: Authenticate to App Dynamics using user name and password.
        """
        pulumi.set(__self__, "type", type)
        if jenkins_bearer_token is not None:
            pulumi.set(__self__, "jenkins_bearer_token", jenkins_bearer_token)
        if jenkins_user_name_password is not None:
            pulumi.set(__self__, "jenkins_user_name_password", jenkins_user_name_password)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Can be one of UsernamePassword, Anonymous, Bearer Token(HTTP Header)
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="jenkinsBearerToken")
    def jenkins_bearer_token(self) -> Optional[pulumi.Input['JenkinsConnectorAuthJenkinsBearerTokenArgs']]:
        """
        Authenticate to App Dynamics using bearer token.
        """
        return pulumi.get(self, "jenkins_bearer_token")

    @jenkins_bearer_token.setter
    def jenkins_bearer_token(self, value: Optional[pulumi.Input['JenkinsConnectorAuthJenkinsBearerTokenArgs']]):
        pulumi.set(self, "jenkins_bearer_token", value)

    @_builtins.property
    @pulumi.getter(name="jenkinsUserNamePassword")
    def jenkins_user_name_password(self) -> Optional[pulumi.Input['JenkinsConnectorAuthJenkinsUserNamePasswordArgs']]:
        """
        Authenticate to App Dynamics using user name and password.
        """
        return pulumi.get(self, "jenkins_user_name_password")

    @jenkins_user_name_password.setter
    def jenkins_user_name_password(self, value: Optional[pulumi.Input['JenkinsConnectorAuthJenkinsUserNamePasswordArgs']]):
        pulumi.set(self, "jenkins_user_name_password", value)


if not MYPY:
    class JenkinsConnectorAuthJenkinsBearerTokenArgsDict(TypedDict):
        token_ref: pulumi.Input[_builtins.str]
        """
        Reference of the token. 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}.
        """
elif False:
    JenkinsConnectorAuthJenkinsBearerTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class JenkinsConnectorAuthJenkinsBearerTokenArgs:
    def __init__(__self__, *,
                 token_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] token_ref: Reference of the token. 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}.
        """
        pulumi.set(__self__, "token_ref", token_ref)

    @_builtins.property
    @pulumi.getter(name="tokenRef")
    def token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference of the token. 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}.
        """
        return pulumi.get(self, "token_ref")

    @token_ref.setter
    def token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "token_ref", value)


if not MYPY:
    class JenkinsConnectorAuthJenkinsUserNamePasswordArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username reference to use for authentication.
        """
elif False:
    JenkinsConnectorAuthJenkinsUserNamePasswordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class JenkinsConnectorAuthJenkinsUserNamePasswordArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: Username reference to use for authentication.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username reference to use for authentication.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class JiraConnectorAuthArgsDict(TypedDict):
        auth_type: pulumi.Input[_builtins.str]
        """
        Authentication types for Jira connector
        """
        personal_access_token: NotRequired[pulumi.Input['JiraConnectorAuthPersonalAccessTokenArgsDict']]
        """
        Authenticate using personal access token.
        """
        username_password: NotRequired[pulumi.Input['JiraConnectorAuthUsernamePasswordArgsDict']]
        """
        Authenticate using username password.
        """
elif False:
    JiraConnectorAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class JiraConnectorAuthArgs:
    def __init__(__self__, *,
                 auth_type: pulumi.Input[_builtins.str],
                 personal_access_token: Optional[pulumi.Input['JiraConnectorAuthPersonalAccessTokenArgs']] = None,
                 username_password: Optional[pulumi.Input['JiraConnectorAuthUsernamePasswordArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] auth_type: Authentication types for Jira connector
        :param pulumi.Input['JiraConnectorAuthPersonalAccessTokenArgs'] personal_access_token: Authenticate using personal access token.
        :param pulumi.Input['JiraConnectorAuthUsernamePasswordArgs'] username_password: Authenticate using username password.
        """
        pulumi.set(__self__, "auth_type", auth_type)
        if personal_access_token is not None:
            pulumi.set(__self__, "personal_access_token", personal_access_token)
        if username_password is not None:
            pulumi.set(__self__, "username_password", username_password)

    @_builtins.property
    @pulumi.getter(name="authType")
    def auth_type(self) -> pulumi.Input[_builtins.str]:
        """
        Authentication types for Jira connector
        """
        return pulumi.get(self, "auth_type")

    @auth_type.setter
    def auth_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "auth_type", value)

    @_builtins.property
    @pulumi.getter(name="personalAccessToken")
    def personal_access_token(self) -> Optional[pulumi.Input['JiraConnectorAuthPersonalAccessTokenArgs']]:
        """
        Authenticate using personal access token.
        """
        return pulumi.get(self, "personal_access_token")

    @personal_access_token.setter
    def personal_access_token(self, value: Optional[pulumi.Input['JiraConnectorAuthPersonalAccessTokenArgs']]):
        pulumi.set(self, "personal_access_token", value)

    @_builtins.property
    @pulumi.getter(name="usernamePassword")
    def username_password(self) -> Optional[pulumi.Input['JiraConnectorAuthUsernamePasswordArgs']]:
        """
        Authenticate using username password.
        """
        return pulumi.get(self, "username_password")

    @username_password.setter
    def username_password(self, value: Optional[pulumi.Input['JiraConnectorAuthUsernamePasswordArgs']]):
        pulumi.set(self, "username_password", value)


if not MYPY:
    class JiraConnectorAuthPersonalAccessTokenArgsDict(TypedDict):
        pat_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the personal access token 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}.
        """
elif False:
    JiraConnectorAuthPersonalAccessTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class JiraConnectorAuthPersonalAccessTokenArgs:
    def __init__(__self__, *,
                 pat_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] pat_ref: Reference to a secret containing the personal access token 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}.
        """
        pulumi.set(__self__, "pat_ref", pat_ref)

    @_builtins.property
    @pulumi.getter(name="patRef")
    def pat_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the personal access token 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}.
        """
        return pulumi.get(self, "pat_ref")

    @pat_ref.setter
    def pat_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "pat_ref", value)


if not MYPY:
    class JiraConnectorAuthUsernamePasswordArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    JiraConnectorAuthUsernamePasswordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class JiraConnectorAuthUsernamePasswordArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class KubernetesConnectorClientKeyCertArgsDict(TypedDict):
        client_cert_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the client certificate for the connector. 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}.
        """
        client_key_algorithm: pulumi.Input[_builtins.str]
        """
        The algorithm used to generate the client key for the connector. Valid values are RSA, EC
        """
        client_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the client key for the connector. 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}.
        """
        master_url: pulumi.Input[_builtins.str]
        """
        The URL of the Kubernetes cluster.
        """
        ca_cert_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing the CA certificate for the connector. 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}.
        """
        client_key_passphrase_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing the client key passphrase for the connector. 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}.
        """
elif False:
    KubernetesConnectorClientKeyCertArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KubernetesConnectorClientKeyCertArgs:
    def __init__(__self__, *,
                 client_cert_ref: pulumi.Input[_builtins.str],
                 client_key_algorithm: pulumi.Input[_builtins.str],
                 client_key_ref: pulumi.Input[_builtins.str],
                 master_url: pulumi.Input[_builtins.str],
                 ca_cert_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 client_key_passphrase_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] client_cert_ref: Reference to the secret containing the client certificate for the connector. 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}.
        :param pulumi.Input[_builtins.str] client_key_algorithm: The algorithm used to generate the client key for the connector. Valid values are RSA, EC
        :param pulumi.Input[_builtins.str] client_key_ref: Reference to the secret containing the client key for the connector. 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}.
        :param pulumi.Input[_builtins.str] master_url: The URL of the Kubernetes cluster.
        :param pulumi.Input[_builtins.str] ca_cert_ref: Reference to the secret containing the CA certificate for the connector. 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}.
        :param pulumi.Input[_builtins.str] client_key_passphrase_ref: Reference to the secret containing the client key passphrase for the connector. 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}.
        """
        pulumi.set(__self__, "client_cert_ref", client_cert_ref)
        pulumi.set(__self__, "client_key_algorithm", client_key_algorithm)
        pulumi.set(__self__, "client_key_ref", client_key_ref)
        pulumi.set(__self__, "master_url", master_url)
        if ca_cert_ref is not None:
            pulumi.set(__self__, "ca_cert_ref", ca_cert_ref)
        if client_key_passphrase_ref is not None:
            pulumi.set(__self__, "client_key_passphrase_ref", client_key_passphrase_ref)

    @_builtins.property
    @pulumi.getter(name="clientCertRef")
    def client_cert_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the client certificate for the connector. 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}.
        """
        return pulumi.get(self, "client_cert_ref")

    @client_cert_ref.setter
    def client_cert_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_cert_ref", value)

    @_builtins.property
    @pulumi.getter(name="clientKeyAlgorithm")
    def client_key_algorithm(self) -> pulumi.Input[_builtins.str]:
        """
        The algorithm used to generate the client key for the connector. Valid values are RSA, EC
        """
        return pulumi.get(self, "client_key_algorithm")

    @client_key_algorithm.setter
    def client_key_algorithm(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_key_algorithm", value)

    @_builtins.property
    @pulumi.getter(name="clientKeyRef")
    def client_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the client key for the connector. 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}.
        """
        return pulumi.get(self, "client_key_ref")

    @client_key_ref.setter
    def client_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="masterUrl")
    def master_url(self) -> pulumi.Input[_builtins.str]:
        """
        The URL of the Kubernetes cluster.
        """
        return pulumi.get(self, "master_url")

    @master_url.setter
    def master_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "master_url", value)

    @_builtins.property
    @pulumi.getter(name="caCertRef")
    def ca_cert_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing the CA certificate for the connector. 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}.
        """
        return pulumi.get(self, "ca_cert_ref")

    @ca_cert_ref.setter
    def ca_cert_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ca_cert_ref", value)

    @_builtins.property
    @pulumi.getter(name="clientKeyPassphraseRef")
    def client_key_passphrase_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing the client key passphrase for the connector. 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}.
        """
        return pulumi.get(self, "client_key_passphrase_ref")

    @client_key_passphrase_ref.setter
    def client_key_passphrase_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "client_key_passphrase_ref", value)


if not MYPY:
    class KubernetesConnectorInheritFromDelegateArgsDict(TypedDict):
        delegate_selectors: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        Selectors to use for the delegate.
        """
elif False:
    KubernetesConnectorInheritFromDelegateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KubernetesConnectorInheritFromDelegateArgs:
    def __init__(__self__, *,
                 delegate_selectors: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: Selectors to use for the delegate.
        """
        pulumi.set(__self__, "delegate_selectors", delegate_selectors)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        Selectors to use for the delegate.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "delegate_selectors", value)


if not MYPY:
    class KubernetesConnectorOpenidConnectArgsDict(TypedDict):
        client_id_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the client ID for the connector. 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}.
        """
        issuer_url: pulumi.Input[_builtins.str]
        """
        The URL of the OpenID Connect issuer.
        """
        master_url: pulumi.Input[_builtins.str]
        """
        The URL of the Kubernetes cluster.
        """
        password_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the password for the connector. 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}.
        """
        scopes: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Scopes to request for the connector.
        """
        secret_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing the client secret for the connector. 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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for the connector.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing the username for the connector. 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}.
        """
elif False:
    KubernetesConnectorOpenidConnectArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KubernetesConnectorOpenidConnectArgs:
    def __init__(__self__, *,
                 client_id_ref: pulumi.Input[_builtins.str],
                 issuer_url: pulumi.Input[_builtins.str],
                 master_url: pulumi.Input[_builtins.str],
                 password_ref: pulumi.Input[_builtins.str],
                 scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 secret_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] client_id_ref: Reference to the secret containing the client ID for the connector. 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}.
        :param pulumi.Input[_builtins.str] issuer_url: The URL of the OpenID Connect issuer.
        :param pulumi.Input[_builtins.str] master_url: The URL of the Kubernetes cluster.
        :param pulumi.Input[_builtins.str] password_ref: Reference to the secret containing the password for the connector. 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}.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] scopes: Scopes to request for the connector.
        :param pulumi.Input[_builtins.str] secret_ref: Reference to the secret containing the client secret for the connector. 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}.
        :param pulumi.Input[_builtins.str] username: Username for the connector.
        :param pulumi.Input[_builtins.str] username_ref: Reference to the secret containing the username for the connector. 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}.
        """
        pulumi.set(__self__, "client_id_ref", client_id_ref)
        pulumi.set(__self__, "issuer_url", issuer_url)
        pulumi.set(__self__, "master_url", master_url)
        pulumi.set(__self__, "password_ref", password_ref)
        if scopes is not None:
            pulumi.set(__self__, "scopes", scopes)
        if secret_ref is not None:
            pulumi.set(__self__, "secret_ref", secret_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="clientIdRef")
    def client_id_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the client ID for the connector. 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}.
        """
        return pulumi.get(self, "client_id_ref")

    @client_id_ref.setter
    def client_id_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_id_ref", value)

    @_builtins.property
    @pulumi.getter(name="issuerUrl")
    def issuer_url(self) -> pulumi.Input[_builtins.str]:
        """
        The URL of the OpenID Connect issuer.
        """
        return pulumi.get(self, "issuer_url")

    @issuer_url.setter
    def issuer_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "issuer_url", value)

    @_builtins.property
    @pulumi.getter(name="masterUrl")
    def master_url(self) -> pulumi.Input[_builtins.str]:
        """
        The URL of the Kubernetes cluster.
        """
        return pulumi.get(self, "master_url")

    @master_url.setter
    def master_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "master_url", value)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the password for the connector. 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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Scopes to request for the connector.
        """
        return pulumi.get(self, "scopes")

    @scopes.setter
    def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "scopes", value)

    @_builtins.property
    @pulumi.getter(name="secretRef")
    def secret_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing the client secret for the connector. 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}.
        """
        return pulumi.get(self, "secret_ref")

    @secret_ref.setter
    def secret_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "secret_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for the connector.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing the username for the connector. 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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class KubernetesConnectorServiceAccountArgsDict(TypedDict):
        master_url: pulumi.Input[_builtins.str]
        """
        The URL of the Kubernetes cluster.
        """
        service_account_token_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the service account token for the connector. 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}.
        """
        ca_cert_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing the CA certificate for the connector. 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}.
        """
elif False:
    KubernetesConnectorServiceAccountArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KubernetesConnectorServiceAccountArgs:
    def __init__(__self__, *,
                 master_url: pulumi.Input[_builtins.str],
                 service_account_token_ref: pulumi.Input[_builtins.str],
                 ca_cert_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] master_url: The URL of the Kubernetes cluster.
        :param pulumi.Input[_builtins.str] service_account_token_ref: Reference to the secret containing the service account token for the connector. 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}.
        :param pulumi.Input[_builtins.str] ca_cert_ref: Reference to the secret containing the CA certificate for the connector. 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}.
        """
        pulumi.set(__self__, "master_url", master_url)
        pulumi.set(__self__, "service_account_token_ref", service_account_token_ref)
        if ca_cert_ref is not None:
            pulumi.set(__self__, "ca_cert_ref", ca_cert_ref)

    @_builtins.property
    @pulumi.getter(name="masterUrl")
    def master_url(self) -> pulumi.Input[_builtins.str]:
        """
        The URL of the Kubernetes cluster.
        """
        return pulumi.get(self, "master_url")

    @master_url.setter
    def master_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "master_url", value)

    @_builtins.property
    @pulumi.getter(name="serviceAccountTokenRef")
    def service_account_token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the service account token for the connector. 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}.
        """
        return pulumi.get(self, "service_account_token_ref")

    @service_account_token_ref.setter
    def service_account_token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "service_account_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="caCertRef")
    def ca_cert_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing the CA certificate for the connector. 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}.
        """
        return pulumi.get(self, "ca_cert_ref")

    @ca_cert_ref.setter
    def ca_cert_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "ca_cert_ref", value)


if not MYPY:
    class KubernetesConnectorUsernamePasswordArgsDict(TypedDict):
        master_url: pulumi.Input[_builtins.str]
        """
        The URL of the Kubernetes cluster.
        """
        password_ref: pulumi.Input[_builtins.str]
        """
        Reference to the secret containing the password for the connector. 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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username for the connector.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the secret containing the username for the connector. 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}.
        """
elif False:
    KubernetesConnectorUsernamePasswordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KubernetesConnectorUsernamePasswordArgs:
    def __init__(__self__, *,
                 master_url: pulumi.Input[_builtins.str],
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] master_url: The URL of the Kubernetes cluster.
        :param pulumi.Input[_builtins.str] password_ref: Reference to the secret containing the password for the connector. 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}.
        :param pulumi.Input[_builtins.str] username: Username for the connector.
        :param pulumi.Input[_builtins.str] username_ref: Reference to the secret containing the username for the connector. 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}.
        """
        pulumi.set(__self__, "master_url", master_url)
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="masterUrl")
    def master_url(self) -> pulumi.Input[_builtins.str]:
        """
        The URL of the Kubernetes cluster.
        """
        return pulumi.get(self, "master_url")

    @master_url.setter
    def master_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "master_url", value)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the secret containing the password for the connector. 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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username for the connector.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the secret containing the username for the connector. 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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class ManualFreezeCurrentOrUpcomingWindowArgsDict(TypedDict):
        end_time: NotRequired[pulumi.Input[_builtins.int]]
        """
        End time of the freeze window
        """
        start_time: NotRequired[pulumi.Input[_builtins.int]]
        """
        Start time of the freeze window
        """
elif False:
    ManualFreezeCurrentOrUpcomingWindowArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ManualFreezeCurrentOrUpcomingWindowArgs:
    def __init__(__self__, *,
                 end_time: Optional[pulumi.Input[_builtins.int]] = None,
                 start_time: Optional[pulumi.Input[_builtins.int]] = None):
        """
        :param pulumi.Input[_builtins.int] end_time: End time of the freeze window
        :param pulumi.Input[_builtins.int] start_time: Start time of the freeze window
        """
        if end_time is not None:
            pulumi.set(__self__, "end_time", end_time)
        if start_time is not None:
            pulumi.set(__self__, "start_time", start_time)

    @_builtins.property
    @pulumi.getter(name="endTime")
    def end_time(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        End time of the freeze window
        """
        return pulumi.get(self, "end_time")

    @end_time.setter
    def end_time(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "end_time", value)

    @_builtins.property
    @pulumi.getter(name="startTime")
    def start_time(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Start time of the freeze window
        """
        return pulumi.get(self, "start_time")

    @start_time.setter
    def start_time(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "start_time", value)


if not MYPY:
    class ManualFreezeFreezeWindowArgsDict(TypedDict):
        duration: NotRequired[pulumi.Input[_builtins.str]]
        """
        Duration of the freeze window
        """
        end_time: NotRequired[pulumi.Input[_builtins.str]]
        """
        End Time of the freeze window
        """
        recurrences: NotRequired[pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceArgsDict']]]]
        """
        Recurrence of the freeze window
        """
        start_time: NotRequired[pulumi.Input[_builtins.str]]
        """
        Start Time of the freeze window
        """
        time_zone: NotRequired[pulumi.Input[_builtins.str]]
        """
        Time zone of the freeze window
        """
elif False:
    ManualFreezeFreezeWindowArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ManualFreezeFreezeWindowArgs:
    def __init__(__self__, *,
                 duration: Optional[pulumi.Input[_builtins.str]] = None,
                 end_time: Optional[pulumi.Input[_builtins.str]] = None,
                 recurrences: Optional[pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceArgs']]]] = None,
                 start_time: Optional[pulumi.Input[_builtins.str]] = None,
                 time_zone: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] duration: Duration of the freeze window
        :param pulumi.Input[_builtins.str] end_time: End Time of the freeze window
        :param pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceArgs']]] recurrences: Recurrence of the freeze window
        :param pulumi.Input[_builtins.str] start_time: Start Time of the freeze window
        :param pulumi.Input[_builtins.str] time_zone: Time zone of the freeze window
        """
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if end_time is not None:
            pulumi.set(__self__, "end_time", end_time)
        if recurrences is not None:
            pulumi.set(__self__, "recurrences", recurrences)
        if start_time is not None:
            pulumi.set(__self__, "start_time", start_time)
        if time_zone is not None:
            pulumi.set(__self__, "time_zone", time_zone)

    @_builtins.property
    @pulumi.getter
    def duration(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Duration of the freeze window
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "duration", value)

    @_builtins.property
    @pulumi.getter(name="endTime")
    def end_time(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        End Time of the freeze window
        """
        return pulumi.get(self, "end_time")

    @end_time.setter
    def end_time(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "end_time", value)

    @_builtins.property
    @pulumi.getter
    def recurrences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceArgs']]]]:
        """
        Recurrence of the freeze window
        """
        return pulumi.get(self, "recurrences")

    @recurrences.setter
    def recurrences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceArgs']]]]):
        pulumi.set(self, "recurrences", value)

    @_builtins.property
    @pulumi.getter(name="startTime")
    def start_time(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Start Time of the freeze window
        """
        return pulumi.get(self, "start_time")

    @start_time.setter
    def start_time(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "start_time", value)

    @_builtins.property
    @pulumi.getter(name="timeZone")
    def time_zone(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Time zone of the freeze window
        """
        return pulumi.get(self, "time_zone")

    @time_zone.setter
    def time_zone(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "time_zone", value)


if not MYPY:
    class ManualFreezeFreezeWindowRecurrenceArgsDict(TypedDict):
        recurrence_specs: NotRequired[pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgsDict']]]]
        """
        Used to filter resources on their attributes
        """
        type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Type of the recurrence
        """
elif False:
    ManualFreezeFreezeWindowRecurrenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ManualFreezeFreezeWindowRecurrenceArgs:
    def __init__(__self__, *,
                 recurrence_specs: Optional[pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgs']]]] = None,
                 type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgs']]] recurrence_specs: Used to filter resources on their attributes
        :param pulumi.Input[_builtins.str] type: Type of the recurrence
        """
        if recurrence_specs is not None:
            pulumi.set(__self__, "recurrence_specs", recurrence_specs)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="recurrenceSpecs")
    def recurrence_specs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgs']]]]:
        """
        Used to filter resources on their attributes
        """
        return pulumi.get(self, "recurrence_specs")

    @recurrence_specs.setter
    def recurrence_specs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgs']]]]):
        pulumi.set(self, "recurrence_specs", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Type of the recurrence
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type", value)


if not MYPY:
    class ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgsDict(TypedDict):
        until: NotRequired[pulumi.Input[_builtins.str]]
        """
        Time till which freeze window recurrs
        """
        value: NotRequired[pulumi.Input[_builtins.int]]
        """
        Every n months recurrence
        """
elif False:
    ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ManualFreezeFreezeWindowRecurrenceRecurrenceSpecArgs:
    def __init__(__self__, *,
                 until: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.int]] = None):
        """
        :param pulumi.Input[_builtins.str] until: Time till which freeze window recurrs
        :param pulumi.Input[_builtins.int] value: Every n months recurrence
        """
        if until is not None:
            pulumi.set(__self__, "until", until)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def until(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Time till which freeze window recurrs
        """
        return pulumi.get(self, "until")

    @until.setter
    def until(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "until", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Every n months recurrence
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "value", value)


if not MYPY:
    class MonitoredServiceRequestArgsDict(TypedDict):
        environment_ref: pulumi.Input[_builtins.str]
        """
        Environment in which the service is deployed.
        """
        name: pulumi.Input[_builtins.str]
        """
        Name for the monitored service.
        """
        service_ref: pulumi.Input[_builtins.str]
        """
        Service reference for the monitored service.
        """
        type: pulumi.Input[_builtins.str]
        """
        Type of the monitored service.
        """
        change_sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestChangeSourceArgsDict']]]]
        """
        Set of change sources for the monitored service.
        """
        dependencies: NotRequired[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestDependencyArgsDict']]]]
        """
        Dependencies of the monitored service.
        """
        description: NotRequired[pulumi.Input[_builtins.str]]
        """
        Description for the monitored service.
        """
        enabled: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Enable or disable the monitored service.
        """
        environment_ref_lists: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Environment reference list for the monitored service.
        """
        health_sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestHealthSourceArgsDict']]]]
        """
        Set of health sources for the monitored service.
        """
        notification_rule_refs: NotRequired[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestNotificationRuleRefArgsDict']]]]
        """
        Notification rule references for the monitored service.
        """
        tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Tags for the monitored service. comma-separated key value string pairs.
        """
        template_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Template reference for the monitored service.
        """
        version_label: NotRequired[pulumi.Input[_builtins.str]]
        """
        Template version label for the monitored service.
        """
elif False:
    MonitoredServiceRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class MonitoredServiceRequestArgs:
    def __init__(__self__, *,
                 environment_ref: pulumi.Input[_builtins.str],
                 name: pulumi.Input[_builtins.str],
                 service_ref: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str],
                 change_sources: Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestChangeSourceArgs']]]] = None,
                 dependencies: Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestDependencyArgs']]]] = None,
                 description: Optional[pulumi.Input[_builtins.str]] = None,
                 enabled: Optional[pulumi.Input[_builtins.bool]] = None,
                 environment_ref_lists: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 health_sources: Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestHealthSourceArgs']]]] = None,
                 notification_rule_refs: Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestNotificationRuleRefArgs']]]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 template_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 version_label: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] environment_ref: Environment in which the service is deployed.
        :param pulumi.Input[_builtins.str] name: Name for the monitored service.
        :param pulumi.Input[_builtins.str] service_ref: Service reference for the monitored service.
        :param pulumi.Input[_builtins.str] type: Type of the monitored service.
        :param pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestChangeSourceArgs']]] change_sources: Set of change sources for the monitored service.
        :param pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestDependencyArgs']]] dependencies: Dependencies of the monitored service.
        :param pulumi.Input[_builtins.str] description: Description for the monitored service.
        :param pulumi.Input[_builtins.bool] enabled: Enable or disable the monitored service.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] environment_ref_lists: Environment reference list for the monitored service.
        :param pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestHealthSourceArgs']]] health_sources: Set of health sources for the monitored service.
        :param pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestNotificationRuleRefArgs']]] notification_rule_refs: Notification rule references for the monitored service.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags for the monitored service. comma-separated key value string pairs.
        :param pulumi.Input[_builtins.str] template_ref: Template reference for the monitored service.
        :param pulumi.Input[_builtins.str] version_label: Template version label for the monitored service.
        """
        pulumi.set(__self__, "environment_ref", environment_ref)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "service_ref", service_ref)
        pulumi.set(__self__, "type", type)
        if change_sources is not None:
            pulumi.set(__self__, "change_sources", change_sources)
        if dependencies is not None:
            pulumi.set(__self__, "dependencies", dependencies)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if enabled is not None:
            warnings.warn("""enabled field is deprecated""", DeprecationWarning)
            pulumi.log.warn("""enabled is deprecated: enabled field is deprecated""")
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if environment_ref_lists is not None:
            pulumi.set(__self__, "environment_ref_lists", environment_ref_lists)
        if health_sources is not None:
            pulumi.set(__self__, "health_sources", health_sources)
        if notification_rule_refs is not None:
            pulumi.set(__self__, "notification_rule_refs", notification_rule_refs)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if template_ref is not None:
            pulumi.set(__self__, "template_ref", template_ref)
        if version_label is not None:
            pulumi.set(__self__, "version_label", version_label)

    @_builtins.property
    @pulumi.getter(name="environmentRef")
    def environment_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Environment in which the service is deployed.
        """
        return pulumi.get(self, "environment_ref")

    @environment_ref.setter
    def environment_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "environment_ref", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name for the monitored service.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="serviceRef")
    def service_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Service reference for the monitored service.
        """
        return pulumi.get(self, "service_ref")

    @service_ref.setter
    def service_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "service_ref", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the monitored service.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="changeSources")
    def change_sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestChangeSourceArgs']]]]:
        """
        Set of change sources for the monitored service.
        """
        return pulumi.get(self, "change_sources")

    @change_sources.setter
    def change_sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestChangeSourceArgs']]]]):
        pulumi.set(self, "change_sources", value)

    @_builtins.property
    @pulumi.getter
    def dependencies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestDependencyArgs']]]]:
        """
        Dependencies of the monitored service.
        """
        return pulumi.get(self, "dependencies")

    @dependencies.setter
    def dependencies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestDependencyArgs']]]]):
        pulumi.set(self, "dependencies", value)

    @_builtins.property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Description for the monitored service.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "description", value)

    @_builtins.property
    @pulumi.getter
    @_utilities.deprecated("""enabled field is deprecated""")
    def enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Enable or disable the monitored service.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter(name="environmentRefLists")
    def environment_ref_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Environment reference list for the monitored service.
        """
        return pulumi.get(self, "environment_ref_lists")

    @environment_ref_lists.setter
    def environment_ref_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "environment_ref_lists", value)

    @_builtins.property
    @pulumi.getter(name="healthSources")
    def health_sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestHealthSourceArgs']]]]:
        """
        Set of health sources for the monitored service.
        """
        return pulumi.get(self, "health_sources")

    @health_sources.setter
    def health_sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestHealthSourceArgs']]]]):
        pulumi.set(self, "health_sources", value)

    @_builtins.property
    @pulumi.getter(name="notificationRuleRefs")
    def notification_rule_refs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestNotificationRuleRefArgs']]]]:
        """
        Notification rule references for the monitored service.
        """
        return pulumi.get(self, "notification_rule_refs")

    @notification_rule_refs.setter
    def notification_rule_refs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MonitoredServiceRequestNotificationRuleRefArgs']]]]):
        pulumi.set(self, "notification_rule_refs", value)

    @_builtins.property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Tags for the monitored service. comma-separated key value string pairs.
        """
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "tags", value)

    @_builtins.property
    @pulumi.getter(name="templateRef")
    def template_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Template reference for the monitored service.
        """
        return pulumi.get(self, "template_ref")

    @template_ref.setter
    def template_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "template_ref", value)

    @_builtins.property
    @pulumi.getter(name="versionLabel")
    def version_label(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Template version label for the monitored service.
        """
        return pulumi.get(self, "version_label")

    @version_label.setter
    def version_label(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version_label", value)


if not MYPY:
    class MonitoredServiceRequestChangeSourceArgsDict(TypedDict):
        category: pulumi.Input[_builtins.str]
        """
        Category of the change source.
        """
        identifier: pulumi.Input[_builtins.str]
        """
        Identifier of the change source.
        """
        name: pulumi.Input[_builtins.str]
        """
        Name of the change source.
        """
        type: pulumi.Input[_builtins.str]
        """
        Type of the change source.
        """
        enabled: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Enable or disable the change source.
        """
        spec: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specification of the change source. Depends on the type of the change source.
        """
elif False:
    MonitoredServiceRequestChangeSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class MonitoredServiceRequestChangeSourceArgs:
    def __init__(__self__, *,
                 category: pulumi.Input[_builtins.str],
                 identifier: pulumi.Input[_builtins.str],
                 name: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str],
                 enabled: Optional[pulumi.Input[_builtins.bool]] = None,
                 spec: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] category: Category of the change source.
        :param pulumi.Input[_builtins.str] identifier: Identifier of the change source.
        :param pulumi.Input[_builtins.str] name: Name of the change source.
        :param pulumi.Input[_builtins.str] type: Type of the change source.
        :param pulumi.Input[_builtins.bool] enabled: Enable or disable the change source.
        :param pulumi.Input[_builtins.str] spec: Specification of the change source. Depends on the type of the change source.
        """
        pulumi.set(__self__, "category", category)
        pulumi.set(__self__, "identifier", identifier)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", type)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def category(self) -> pulumi.Input[_builtins.str]:
        """
        Category of the change source.
        """
        return pulumi.get(self, "category")

    @category.setter
    def category(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "category", value)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[_builtins.str]:
        """
        Identifier of the change source.
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the change source.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the change source.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Enable or disable the change source.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specification of the change source. Depends on the type of the change source.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class MonitoredServiceRequestDependencyArgsDict(TypedDict):
        monitored_service_identifier: pulumi.Input[_builtins.str]
        """
        Monitored service identifier of the dependency.
        """
        type: pulumi.Input[_builtins.str]
        """
        Type of the service dependency.
        """
        dependency_metadata: NotRequired[pulumi.Input[_builtins.str]]
        """
        Dependency metadata for the monitored service.
        """
elif False:
    MonitoredServiceRequestDependencyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class MonitoredServiceRequestDependencyArgs:
    def __init__(__self__, *,
                 monitored_service_identifier: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str],
                 dependency_metadata: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] monitored_service_identifier: Monitored service identifier of the dependency.
        :param pulumi.Input[_builtins.str] type: Type of the service dependency.
        :param pulumi.Input[_builtins.str] dependency_metadata: Dependency metadata for the monitored service.
        """
        pulumi.set(__self__, "monitored_service_identifier", monitored_service_identifier)
        pulumi.set(__self__, "type", type)
        if dependency_metadata is not None:
            pulumi.set(__self__, "dependency_metadata", dependency_metadata)

    @_builtins.property
    @pulumi.getter(name="monitoredServiceIdentifier")
    def monitored_service_identifier(self) -> pulumi.Input[_builtins.str]:
        """
        Monitored service identifier of the dependency.
        """
        return pulumi.get(self, "monitored_service_identifier")

    @monitored_service_identifier.setter
    def monitored_service_identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "monitored_service_identifier", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the service dependency.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="dependencyMetadata")
    def dependency_metadata(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Dependency metadata for the monitored service.
        """
        return pulumi.get(self, "dependency_metadata")

    @dependency_metadata.setter
    def dependency_metadata(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "dependency_metadata", value)


if not MYPY:
    class MonitoredServiceRequestHealthSourceArgsDict(TypedDict):
        identifier: pulumi.Input[_builtins.str]
        """
        Identifier of the health source.
        """
        name: pulumi.Input[_builtins.str]
        """
        Name of the health source.
        """
        spec: pulumi.Input[_builtins.str]
        """
        Specification of the health source. Depends on the type of the health source.
        """
        type: pulumi.Input[_builtins.str]
        """
        Type of the health source.
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of the health source.
        """
elif False:
    MonitoredServiceRequestHealthSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class MonitoredServiceRequestHealthSourceArgs:
    def __init__(__self__, *,
                 identifier: pulumi.Input[_builtins.str],
                 name: pulumi.Input[_builtins.str],
                 spec: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str],
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] identifier: Identifier of the health source.
        :param pulumi.Input[_builtins.str] name: Name of the health source.
        :param pulumi.Input[_builtins.str] spec: Specification of the health source. Depends on the type of the health source.
        :param pulumi.Input[_builtins.str] type: Type of the health source.
        :param pulumi.Input[_builtins.str] version: Version of the health source.
        """
        pulumi.set(__self__, "identifier", identifier)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "spec", spec)
        pulumi.set(__self__, "type", type)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[_builtins.str]:
        """
        Identifier of the health source.
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the health source.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> pulumi.Input[_builtins.str]:
        """
        Specification of the health source. Depends on the type of the health source.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "spec", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the health source.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of the health source.
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class MonitoredServiceRequestNotificationRuleRefArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Enable or disable notification rule reference for the monitored service.
        """
        notification_rule_ref: pulumi.Input[_builtins.str]
        """
        Notification rule reference for the monitored service.
        """
elif False:
    MonitoredServiceRequestNotificationRuleRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class MonitoredServiceRequestNotificationRuleRefArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 notification_rule_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.bool] enabled: Enable or disable notification rule reference for the monitored service.
        :param pulumi.Input[_builtins.str] notification_rule_ref: Notification rule reference for the monitored service.
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "notification_rule_ref", notification_rule_ref)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Enable or disable notification rule reference for the monitored service.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter(name="notificationRuleRef")
    def notification_rule_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Notification rule reference for the monitored service.
        """
        return pulumi.get(self, "notification_rule_ref")

    @notification_rule_ref.setter
    def notification_rule_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "notification_rule_ref", value)


if not MYPY:
    class NexusConnectorCredentialsArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    NexusConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NexusConnectorCredentialsArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class NotificationRuleRequestArgsDict(TypedDict):
        conditions: pulumi.Input[Sequence[pulumi.Input['NotificationRuleRequestConditionArgsDict']]]
        """
        Notification Rule conditions specification.
        """
        name: pulumi.Input[_builtins.str]
        """
        Name for the Notification Rule.
        """
        notification_method: pulumi.Input['NotificationRuleRequestNotificationMethodArgsDict']
        """
        Notification Method specifications.
        """
        type: pulumi.Input[_builtins.str]
        """
        Type of the Notification Rule.
        """
elif False:
    NotificationRuleRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NotificationRuleRequestArgs:
    def __init__(__self__, *,
                 conditions: pulumi.Input[Sequence[pulumi.Input['NotificationRuleRequestConditionArgs']]],
                 name: pulumi.Input[_builtins.str],
                 notification_method: pulumi.Input['NotificationRuleRequestNotificationMethodArgs'],
                 type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['NotificationRuleRequestConditionArgs']]] conditions: Notification Rule conditions specification.
        :param pulumi.Input[_builtins.str] name: Name for the Notification Rule.
        :param pulumi.Input['NotificationRuleRequestNotificationMethodArgs'] notification_method: Notification Method specifications.
        :param pulumi.Input[_builtins.str] type: Type of the Notification Rule.
        """
        pulumi.set(__self__, "conditions", conditions)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "notification_method", notification_method)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter
    def conditions(self) -> pulumi.Input[Sequence[pulumi.Input['NotificationRuleRequestConditionArgs']]]:
        """
        Notification Rule conditions specification.
        """
        return pulumi.get(self, "conditions")

    @conditions.setter
    def conditions(self, value: pulumi.Input[Sequence[pulumi.Input['NotificationRuleRequestConditionArgs']]]):
        pulumi.set(self, "conditions", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name for the Notification Rule.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="notificationMethod")
    def notification_method(self) -> pulumi.Input['NotificationRuleRequestNotificationMethodArgs']:
        """
        Notification Method specifications.
        """
        return pulumi.get(self, "notification_method")

    @notification_method.setter
    def notification_method(self, value: pulumi.Input['NotificationRuleRequestNotificationMethodArgs']):
        pulumi.set(self, "notification_method", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the Notification Rule.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)


if not MYPY:
    class NotificationRuleRequestConditionArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        Type of the condition.
        """
        spec: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specification of the notification condition. Depends on the type of the notification condition.
        """
elif False:
    NotificationRuleRequestConditionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NotificationRuleRequestConditionArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 spec: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] type: Type of the condition.
        :param pulumi.Input[_builtins.str] spec: Specification of the notification condition. Depends on the type of the notification condition.
        """
        pulumi.set(__self__, "type", type)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the condition.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specification of the notification condition. Depends on the type of the notification condition.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class NotificationRuleRequestNotificationMethodArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        Type of the Notification Method.
        """
        spec: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specification of the notification method. Depends on the type of the notification method.
        """
elif False:
    NotificationRuleRequestNotificationMethodArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NotificationRuleRequestNotificationMethodArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 spec: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] type: Type of the Notification Method.
        :param pulumi.Input[_builtins.str] spec: Specification of the notification method. Depends on the type of the notification method.
        """
        pulumi.set(__self__, "type", type)
        if spec is not None:
            pulumi.set(__self__, "spec", spec)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the Notification Method.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specification of the notification method. Depends on the type of the notification method.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "spec", value)


if not MYPY:
    class OciHelmConnectorCredentialsArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    OciHelmConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class OciHelmConnectorCredentialsArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class OverridesGitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        is_harness_code_repo: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the repo is in harness code
        """
        is_new_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the branch being created is new
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating override.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating override.
        """
        load_from_cache: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Load service yaml from catch
        """
        load_from_fallback_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Load service yaml from fallback branch
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    OverridesGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class OverridesGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 is_harness_code_repo: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_new_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 load_from_cache: Optional[pulumi.Input[_builtins.bool]] = None,
                 load_from_fallback_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.bool] is_harness_code_repo: If the repo is in harness code
        :param pulumi.Input[_builtins.bool] is_new_branch: If the branch being created is new
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating override.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating override.
        :param pulumi.Input[_builtins.bool] load_from_cache: Load service yaml from catch
        :param pulumi.Input[_builtins.bool] load_from_fallback_branch: Load service yaml from fallback branch
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch is not None:
            pulumi.set(__self__, "branch", branch)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if is_harness_code_repo is not None:
            pulumi.set(__self__, "is_harness_code_repo", is_harness_code_repo)
        if is_new_branch is not None:
            pulumi.set(__self__, "is_new_branch", is_new_branch)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if load_from_cache is not None:
            pulumi.set(__self__, "load_from_cache", load_from_cache)
        if load_from_fallback_branch is not None:
            pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="isHarnessCodeRepo")
    def is_harness_code_repo(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the repo is in harness code
        """
        return pulumi.get(self, "is_harness_code_repo")

    @is_harness_code_repo.setter
    def is_harness_code_repo(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_harness_code_repo", value)

    @_builtins.property
    @pulumi.getter(name="isNewBranch")
    def is_new_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the branch being created is new
        """
        return pulumi.get(self, "is_new_branch")

    @is_new_branch.setter
    def is_new_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_new_branch", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating override.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating override.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="loadFromCache")
    def load_from_cache(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Load service yaml from catch
        """
        return pulumi.get(self, "load_from_cache")

    @load_from_cache.setter
    def load_from_cache(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "load_from_cache", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Load service yaml from fallback branch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class PipelineCentralNotificationRuleCustomNotificationTemplateRefArgsDict(TypedDict):
        template_ref: pulumi.Input[_builtins.str]
        version_label: pulumi.Input[_builtins.str]
        variables: NotRequired[pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict']]]]
elif False:
    PipelineCentralNotificationRuleCustomNotificationTemplateRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineCentralNotificationRuleCustomNotificationTemplateRefArgs:
    def __init__(__self__, *,
                 template_ref: pulumi.Input[_builtins.str],
                 version_label: pulumi.Input[_builtins.str],
                 variables: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]]] = None):
        pulumi.set(__self__, "template_ref", template_ref)
        pulumi.set(__self__, "version_label", version_label)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @_builtins.property
    @pulumi.getter(name="templateRef")
    def template_ref(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "template_ref")

    @template_ref.setter
    def template_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "template_ref", value)

    @_builtins.property
    @pulumi.getter(name="versionLabel")
    def version_label(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "version_label")

    @version_label.setter
    def version_label(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "version_label", value)

    @_builtins.property
    @pulumi.getter
    def variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]]]:
        return pulumi.get(self, "variables")

    @variables.setter
    def variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]]]):
        pulumi.set(self, "variables", value)


if not MYPY:
    class PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        value: pulumi.Input[_builtins.str]
        type: NotRequired[pulumi.Input[_builtins.str]]
elif False:
    PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str],
                 type: Optional[pulumi.Input[_builtins.str]] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type", value)


if not MYPY:
    class PipelineCentralNotificationRuleNotificationConditionArgsDict(TypedDict):
        condition_name: pulumi.Input[_builtins.str]
        notification_event_configs: pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict']]]
elif False:
    PipelineCentralNotificationRuleNotificationConditionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineCentralNotificationRuleNotificationConditionArgs:
    def __init__(__self__, *,
                 condition_name: pulumi.Input[_builtins.str],
                 notification_event_configs: pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']]]):
        pulumi.set(__self__, "condition_name", condition_name)
        pulumi.set(__self__, "notification_event_configs", notification_event_configs)

    @_builtins.property
    @pulumi.getter(name="conditionName")
    def condition_name(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "condition_name")

    @condition_name.setter
    def condition_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "condition_name", value)

    @_builtins.property
    @pulumi.getter(name="notificationEventConfigs")
    def notification_event_configs(self) -> pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']]]:
        return pulumi.get(self, "notification_event_configs")

    @notification_event_configs.setter
    def notification_event_configs(self, value: pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']]]):
        pulumi.set(self, "notification_event_configs", value)


if not MYPY:
    class PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict(TypedDict):
        notification_entity: pulumi.Input[_builtins.str]
        notification_event: pulumi.Input[_builtins.str]
        """
        The pipeline event that triggers the notification. Supported values: `PIPELINE_START`, `PIPELINE_SUCCESS`, `PIPELINE_FAILED`, `STAGE_START`, `STAGE_SUCCESS`, `STAGE_FAILED`.
        """
        entity_identifiers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        notification_event_datas: NotRequired[pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgsDict']]]]
elif False:
    PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs:
    def __init__(__self__, *,
                 notification_entity: pulumi.Input[_builtins.str],
                 notification_event: pulumi.Input[_builtins.str],
                 entity_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 notification_event_datas: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs']]]] = None):
        """
        :param pulumi.Input[_builtins.str] notification_event: The pipeline event that triggers the notification. Supported values: `PIPELINE_START`, `PIPELINE_SUCCESS`, `PIPELINE_FAILED`, `STAGE_START`, `STAGE_SUCCESS`, `STAGE_FAILED`.
        """
        pulumi.set(__self__, "notification_entity", notification_entity)
        pulumi.set(__self__, "notification_event", notification_event)
        if entity_identifiers is not None:
            pulumi.set(__self__, "entity_identifiers", entity_identifiers)
        if notification_event_datas is not None:
            pulumi.set(__self__, "notification_event_datas", notification_event_datas)

    @_builtins.property
    @pulumi.getter(name="notificationEntity")
    def notification_entity(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "notification_entity")

    @notification_entity.setter
    def notification_entity(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "notification_entity", value)

    @_builtins.property
    @pulumi.getter(name="notificationEvent")
    def notification_event(self) -> pulumi.Input[_builtins.str]:
        """
        The pipeline event that triggers the notification. Supported values: `PIPELINE_START`, `PIPELINE_SUCCESS`, `PIPELINE_FAILED`, `STAGE_START`, `STAGE_SUCCESS`, `STAGE_FAILED`.
        """
        return pulumi.get(self, "notification_event")

    @notification_event.setter
    def notification_event(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "notification_event", value)

    @_builtins.property
    @pulumi.getter(name="entityIdentifiers")
    def entity_identifiers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "entity_identifiers")

    @entity_identifiers.setter
    def entity_identifiers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "entity_identifiers", value)

    @_builtins.property
    @pulumi.getter(name="notificationEventDatas")
    def notification_event_datas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs']]]]:
        return pulumi.get(self, "notification_event_datas")

    @notification_event_datas.setter
    def notification_event_datas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs']]]]):
        pulumi.set(self, "notification_event_datas", value)


if not MYPY:
    class PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgsDict(TypedDict):
        scope_identifiers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        type: NotRequired[pulumi.Input[_builtins.str]]
elif False:
    PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs:
    def __init__(__self__, *,
                 scope_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 type: Optional[pulumi.Input[_builtins.str]] = None):
        if scope_identifiers is not None:
            pulumi.set(__self__, "scope_identifiers", scope_identifiers)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="scopeIdentifiers")
    def scope_identifiers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "scope_identifiers")

    @scope_identifiers.setter
    def scope_identifiers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "scope_identifiers", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type", value)


if not MYPY:
    class PipelineFiltersFilterPropertiesArgsDict(TypedDict):
        filter_type: pulumi.Input[_builtins.str]
        """
        Corresponding Entity of the filters. Currently supported types are {Connector, DelegateProfile, Delegate, PipelineSetup, PipelineExecution, Deployment, Audit, Template, EnvironmentGroup, FileStore, CCMRecommendation, Anomaly, Environment}.
        """
        description: NotRequired[pulumi.Input[_builtins.str]]
        """
        description of the pipline filter.
        """
        module_properties: NotRequired[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesArgsDict']]
        """
        module properties of the pipline filter.
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the pipeline filter.
        """
        pipeline_identifiers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Pipeline identifiers to filter on.
        """
        pipeline_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the pipeline execution filter.
        """
        pipeline_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]
        """
        Tags to associate with the pipeline. tags should be in the form of `{key:key1, value:key1value}`
        """
        tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Tags to associate with the resource. Tags should be in the form `name:value`.
        """
elif False:
    PipelineFiltersFilterPropertiesArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineFiltersFilterPropertiesArgs:
    def __init__(__self__, *,
                 filter_type: pulumi.Input[_builtins.str],
                 description: Optional[pulumi.Input[_builtins.str]] = None,
                 module_properties: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesArgs']] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 pipeline_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 pipeline_name: Optional[pulumi.Input[_builtins.str]] = None,
                 pipeline_tags: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] filter_type: Corresponding Entity of the filters. Currently supported types are {Connector, DelegateProfile, Delegate, PipelineSetup, PipelineExecution, Deployment, Audit, Template, EnvironmentGroup, FileStore, CCMRecommendation, Anomaly, Environment}.
        :param pulumi.Input[_builtins.str] description: description of the pipline filter.
        :param pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesArgs'] module_properties: module properties of the pipline filter.
        :param pulumi.Input[_builtins.str] name: Name of the pipeline filter.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] pipeline_identifiers: Pipeline identifiers to filter on.
        :param pulumi.Input[_builtins.str] pipeline_name: Name of the pipeline execution filter.
        :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] pipeline_tags: Tags to associate with the pipeline. tags should be in the form of `{key:key1, value:key1value}`
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags to associate with the resource. Tags should be in the form `name:value`.
        """
        pulumi.set(__self__, "filter_type", filter_type)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if module_properties is not None:
            pulumi.set(__self__, "module_properties", module_properties)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if pipeline_identifiers is not None:
            pulumi.set(__self__, "pipeline_identifiers", pipeline_identifiers)
        if pipeline_name is not None:
            pulumi.set(__self__, "pipeline_name", pipeline_name)
        if pipeline_tags is not None:
            pulumi.set(__self__, "pipeline_tags", pipeline_tags)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

    @_builtins.property
    @pulumi.getter(name="filterType")
    def filter_type(self) -> pulumi.Input[_builtins.str]:
        """
        Corresponding Entity of the filters. Currently supported types are {Connector, DelegateProfile, Delegate, PipelineSetup, PipelineExecution, Deployment, Audit, Template, EnvironmentGroup, FileStore, CCMRecommendation, Anomaly, Environment}.
        """
        return pulumi.get(self, "filter_type")

    @filter_type.setter
    def filter_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "filter_type", value)

    @_builtins.property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        description of the pipline filter.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "description", value)

    @_builtins.property
    @pulumi.getter(name="moduleProperties")
    def module_properties(self) -> Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesArgs']]:
        """
        module properties of the pipline filter.
        """
        return pulumi.get(self, "module_properties")

    @module_properties.setter
    def module_properties(self, value: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesArgs']]):
        pulumi.set(self, "module_properties", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the pipeline filter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="pipelineIdentifiers")
    def pipeline_identifiers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Pipeline identifiers to filter on.
        """
        return pulumi.get(self, "pipeline_identifiers")

    @pipeline_identifiers.setter
    def pipeline_identifiers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "pipeline_identifiers", value)

    @_builtins.property
    @pulumi.getter(name="pipelineName")
    def pipeline_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the pipeline execution filter.
        """
        return pulumi.get(self, "pipeline_name")

    @pipeline_name.setter
    def pipeline_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pipeline_name", value)

    @_builtins.property
    @pulumi.getter(name="pipelineTags")
    def pipeline_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]:
        """
        Tags to associate with the pipeline. tags should be in the form of `{key:key1, value:key1value}`
        """
        return pulumi.get(self, "pipeline_tags")

    @pipeline_tags.setter
    def pipeline_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]):
        pulumi.set(self, "pipeline_tags", value)

    @_builtins.property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Tags to associate with the resource. Tags should be in the form `name:value`.
        """
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "tags", value)


if not MYPY:
    class PipelineFiltersFilterPropertiesModulePropertiesArgsDict(TypedDict):
        cd: NotRequired[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCdArgsDict']]
        """
        CD related properties to be filtered on.
        """
        ci: NotRequired[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiArgsDict']]
        """
        CI related properties to be filtered on.
        """
elif False:
    PipelineFiltersFilterPropertiesModulePropertiesArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineFiltersFilterPropertiesModulePropertiesArgs:
    def __init__(__self__, *,
                 cd: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCdArgs']] = None,
                 ci: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiArgs']] = None):
        """
        :param pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCdArgs'] cd: CD related properties to be filtered on.
        :param pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiArgs'] ci: CI related properties to be filtered on.
        """
        if cd is not None:
            pulumi.set(__self__, "cd", cd)
        if ci is not None:
            pulumi.set(__self__, "ci", ci)

    @_builtins.property
    @pulumi.getter
    def cd(self) -> Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCdArgs']]:
        """
        CD related properties to be filtered on.
        """
        return pulumi.get(self, "cd")

    @cd.setter
    def cd(self, value: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCdArgs']]):
        pulumi.set(self, "cd", value)

    @_builtins.property
    @pulumi.getter
    def ci(self) -> Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiArgs']]:
        """
        CI related properties to be filtered on.
        """
        return pulumi.get(self, "ci")

    @ci.setter
    def ci(self, value: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiArgs']]):
        pulumi.set(self, "ci", value)


if not MYPY:
    class PipelineFiltersFilterPropertiesModulePropertiesCdArgsDict(TypedDict):
        artifact_display_names: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Artifact display names of the CD pipeline.
        """
        deployment_types: NotRequired[pulumi.Input[_builtins.str]]
        """
        Deployment type of the CD pipeline, eg. Kubernetes
        """
        environment_identifiers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Environment identifier of the CD pipeline.
        """
        environment_names: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Environment names of the CD pipeline.
        """
        service_definition_types: NotRequired[pulumi.Input[_builtins.str]]
        """
        Deployment type of the CD pipeline, eg. Kubernetes
        """
        service_identifiers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Service identifiers of the CD pipeline.
        """
        service_names: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Service names of the CD pipeline.
        """
elif False:
    PipelineFiltersFilterPropertiesModulePropertiesCdArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineFiltersFilterPropertiesModulePropertiesCdArgs:
    def __init__(__self__, *,
                 artifact_display_names: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 deployment_types: Optional[pulumi.Input[_builtins.str]] = None,
                 environment_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 environment_names: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 service_definition_types: Optional[pulumi.Input[_builtins.str]] = None,
                 service_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 service_names: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] artifact_display_names: Artifact display names of the CD pipeline.
        :param pulumi.Input[_builtins.str] deployment_types: Deployment type of the CD pipeline, eg. Kubernetes
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] environment_identifiers: Environment identifier of the CD pipeline.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] environment_names: Environment names of the CD pipeline.
        :param pulumi.Input[_builtins.str] service_definition_types: Deployment type of the CD pipeline, eg. Kubernetes
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] service_identifiers: Service identifiers of the CD pipeline.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] service_names: Service names of the CD pipeline.
        """
        if artifact_display_names is not None:
            pulumi.set(__self__, "artifact_display_names", artifact_display_names)
        if deployment_types is not None:
            pulumi.set(__self__, "deployment_types", deployment_types)
        if environment_identifiers is not None:
            pulumi.set(__self__, "environment_identifiers", environment_identifiers)
        if environment_names is not None:
            pulumi.set(__self__, "environment_names", environment_names)
        if service_definition_types is not None:
            pulumi.set(__self__, "service_definition_types", service_definition_types)
        if service_identifiers is not None:
            pulumi.set(__self__, "service_identifiers", service_identifiers)
        if service_names is not None:
            pulumi.set(__self__, "service_names", service_names)

    @_builtins.property
    @pulumi.getter(name="artifactDisplayNames")
    def artifact_display_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Artifact display names of the CD pipeline.
        """
        return pulumi.get(self, "artifact_display_names")

    @artifact_display_names.setter
    def artifact_display_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "artifact_display_names", value)

    @_builtins.property
    @pulumi.getter(name="deploymentTypes")
    def deployment_types(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Deployment type of the CD pipeline, eg. Kubernetes
        """
        return pulumi.get(self, "deployment_types")

    @deployment_types.setter
    def deployment_types(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "deployment_types", value)

    @_builtins.property
    @pulumi.getter(name="environmentIdentifiers")
    def environment_identifiers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Environment identifier of the CD pipeline.
        """
        return pulumi.get(self, "environment_identifiers")

    @environment_identifiers.setter
    def environment_identifiers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "environment_identifiers", value)

    @_builtins.property
    @pulumi.getter(name="environmentNames")
    def environment_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Environment names of the CD pipeline.
        """
        return pulumi.get(self, "environment_names")

    @environment_names.setter
    def environment_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "environment_names", value)

    @_builtins.property
    @pulumi.getter(name="serviceDefinitionTypes")
    def service_definition_types(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Deployment type of the CD pipeline, eg. Kubernetes
        """
        return pulumi.get(self, "service_definition_types")

    @service_definition_types.setter
    def service_definition_types(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "service_definition_types", value)

    @_builtins.property
    @pulumi.getter(name="serviceIdentifiers")
    def service_identifiers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Service identifiers of the CD pipeline.
        """
        return pulumi.get(self, "service_identifiers")

    @service_identifiers.setter
    def service_identifiers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "service_identifiers", value)

    @_builtins.property
    @pulumi.getter(name="serviceNames")
    def service_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Service names of the CD pipeline.
        """
        return pulumi.get(self, "service_names")

    @service_names.setter
    def service_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "service_names", value)


if not MYPY:
    class PipelineFiltersFilterPropertiesModulePropertiesCiArgsDict(TypedDict):
        branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Branch which was used while building.
        """
        build_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Build type of the pipeline. Possible values: branch.
        """
        ci_execution_info: NotRequired[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgsDict']]
        """
        CI execution info for the pipeline.
        """
        repo_names: NotRequired[pulumi.Input[_builtins.str]]
        """
        name of the repository used in the pipeline.
        """
        tag: NotRequired[pulumi.Input[_builtins.str]]
        """
        Tags to associate with the CI pipeline resource.
        """
elif False:
    PipelineFiltersFilterPropertiesModulePropertiesCiArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineFiltersFilterPropertiesModulePropertiesCiArgs:
    def __init__(__self__, *,
                 branch: Optional[pulumi.Input[_builtins.str]] = None,
                 build_type: Optional[pulumi.Input[_builtins.str]] = None,
                 ci_execution_info: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgs']] = None,
                 repo_names: Optional[pulumi.Input[_builtins.str]] = None,
                 tag: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch: Branch which was used while building.
        :param pulumi.Input[_builtins.str] build_type: Build type of the pipeline. Possible values: branch.
        :param pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgs'] ci_execution_info: CI execution info for the pipeline.
        :param pulumi.Input[_builtins.str] repo_names: name of the repository used in the pipeline.
        :param pulumi.Input[_builtins.str] tag: Tags to associate with the CI pipeline resource.
        """
        if branch is not None:
            pulumi.set(__self__, "branch", branch)
        if build_type is not None:
            pulumi.set(__self__, "build_type", build_type)
        if ci_execution_info is not None:
            pulumi.set(__self__, "ci_execution_info", ci_execution_info)
        if repo_names is not None:
            pulumi.set(__self__, "repo_names", repo_names)
        if tag is not None:
            pulumi.set(__self__, "tag", tag)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Branch which was used while building.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="buildType")
    def build_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Build type of the pipeline. Possible values: branch.
        """
        return pulumi.get(self, "build_type")

    @build_type.setter
    def build_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "build_type", value)

    @_builtins.property
    @pulumi.getter(name="ciExecutionInfo")
    def ci_execution_info(self) -> Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgs']]:
        """
        CI execution info for the pipeline.
        """
        return pulumi.get(self, "ci_execution_info")

    @ci_execution_info.setter
    def ci_execution_info(self, value: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgs']]):
        pulumi.set(self, "ci_execution_info", value)

    @_builtins.property
    @pulumi.getter(name="repoNames")
    def repo_names(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        name of the repository used in the pipeline.
        """
        return pulumi.get(self, "repo_names")

    @repo_names.setter
    def repo_names(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_names", value)

    @_builtins.property
    @pulumi.getter
    def tag(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Tags to associate with the CI pipeline resource.
        """
        return pulumi.get(self, "tag")

    @tag.setter
    def tag(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tag", value)


if not MYPY:
    class PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgsDict(TypedDict):
        event: NotRequired[pulumi.Input[_builtins.str]]
        """
        Event for the ci execution, Possible values: pullRequest.
        """
        pull_request: NotRequired[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgsDict']]
        """
        The pull request details of the CI pipeline.
        """
elif False:
    PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoArgs:
    def __init__(__self__, *,
                 event: Optional[pulumi.Input[_builtins.str]] = None,
                 pull_request: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] event: Event for the ci execution, Possible values: pullRequest.
        :param pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgs'] pull_request: The pull request details of the CI pipeline.
        """
        if event is not None:
            pulumi.set(__self__, "event", event)
        if pull_request is not None:
            pulumi.set(__self__, "pull_request", pull_request)

    @_builtins.property
    @pulumi.getter
    def event(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Event for the ci execution, Possible values: pullRequest.
        """
        return pulumi.get(self, "event")

    @event.setter
    def event(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "event", value)

    @_builtins.property
    @pulumi.getter(name="pullRequest")
    def pull_request(self) -> Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgs']]:
        """
        The pull request details of the CI pipeline.
        """
        return pulumi.get(self, "pull_request")

    @pull_request.setter
    def pull_request(self, value: Optional[pulumi.Input['PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgs']]):
        pulumi.set(self, "pull_request", value)


if not MYPY:
    class PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgsDict(TypedDict):
        source_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Source branch of the pull request.
        """
        target_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Target branch of the pull request.
        """
elif False:
    PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineFiltersFilterPropertiesModulePropertiesCiCiExecutionInfoPullRequestArgs:
    def __init__(__self__, *,
                 source_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 target_branch: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] source_branch: Source branch of the pull request.
        :param pulumi.Input[_builtins.str] target_branch: Target branch of the pull request.
        """
        if source_branch is not None:
            pulumi.set(__self__, "source_branch", source_branch)
        if target_branch is not None:
            pulumi.set(__self__, "target_branch", target_branch)

    @_builtins.property
    @pulumi.getter(name="sourceBranch")
    def source_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Source branch of the pull request.
        """
        return pulumi.get(self, "source_branch")

    @source_branch.setter
    def source_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "source_branch", value)

    @_builtins.property
    @pulumi.getter(name="targetBranch")
    def target_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Target branch of the pull request.
        """
        return pulumi.get(self, "target_branch")

    @target_branch.setter
    def target_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "target_branch", value)


if not MYPY:
    class PipelineGitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        is_harness_code_repo: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the repo is harness code.
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    PipelineGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch_name: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 is_harness_code_repo: Optional[pulumi.Input[_builtins.bool]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch_name: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.bool] is_harness_code_repo: If the repo is harness code.
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch_name is not None:
            pulumi.set(__self__, "branch_name", branch_name)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if is_harness_code_repo is not None:
            pulumi.set(__self__, "is_harness_code_repo", is_harness_code_repo)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="isHarnessCodeRepo")
    def is_harness_code_repo(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the repo is harness code.
        """
        return pulumi.get(self, "is_harness_code_repo")

    @is_harness_code_repo.setter
    def is_harness_code_repo(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_harness_code_repo", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class PipelineGitImportInfoArgsDict(TypedDict):
        branch_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
elif False:
    PipelineGitImportInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelineGitImportInfoArgs:
    def __init__(__self__, *,
                 branch_name: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_name: Name of the branch.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        """
        if branch_name is not None:
            pulumi.set(__self__, "branch_name", branch_name)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)


if not MYPY:
    class PipelinePipelineImportRequestArgsDict(TypedDict):
        pipeline_description: NotRequired[pulumi.Input[_builtins.str]]
        """
        Description of the pipeline.
        """
        pipeline_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the pipeline.
        """
elif False:
    PipelinePipelineImportRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PipelinePipelineImportRequestArgs:
    def __init__(__self__, *,
                 pipeline_description: Optional[pulumi.Input[_builtins.str]] = None,
                 pipeline_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] pipeline_description: Description of the pipeline.
        :param pulumi.Input[_builtins.str] pipeline_name: Name of the pipeline.
        """
        if pipeline_description is not None:
            pulumi.set(__self__, "pipeline_description", pipeline_description)
        if pipeline_name is not None:
            pulumi.set(__self__, "pipeline_name", pipeline_name)

    @_builtins.property
    @pulumi.getter(name="pipelineDescription")
    def pipeline_description(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Description of the pipeline.
        """
        return pulumi.get(self, "pipeline_description")

    @pipeline_description.setter
    def pipeline_description(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pipeline_description", value)

    @_builtins.property
    @pulumi.getter(name="pipelineName")
    def pipeline_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the pipeline.
        """
        return pulumi.get(self, "pipeline_name")

    @pipeline_name.setter
    def pipeline_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pipeline_name", value)


if not MYPY:
    class PolicySetPolicyArgsDict(TypedDict):
        identifier: pulumi.Input[_builtins.str]
        """
        Account Identifier of the account
        """
        severity: pulumi.Input[_builtins.str]
        """
        Policy failure response - 'warning' for continuation, 'error' for exit
        """
elif False:
    PolicySetPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PolicySetPolicyArgs:
    def __init__(__self__, *,
                 identifier: pulumi.Input[_builtins.str],
                 severity: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] identifier: Account Identifier of the account
        :param pulumi.Input[_builtins.str] severity: Policy failure response - 'warning' for continuation, 'error' for exit
        """
        pulumi.set(__self__, "identifier", identifier)
        pulumi.set(__self__, "severity", severity)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[_builtins.str]:
        """
        Account Identifier of the account
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def severity(self) -> pulumi.Input[_builtins.str]:
        """
        Policy failure response - 'warning' for continuation, 'error' for exit
        """
        return pulumi.get(self, "severity")

    @severity.setter
    def severity(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "severity", value)


if not MYPY:
    class PolicySetPolicyReferenceArgsDict(TypedDict):
        identifier: pulumi.Input[_builtins.str]
        """
        Unique identifier of the policy
        """
        severity: pulumi.Input[_builtins.str]
        """
        Policy failure response - 'warning' for continuation, 'error' for exit
        """
elif False:
    PolicySetPolicyReferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PolicySetPolicyReferenceArgs:
    def __init__(__self__, *,
                 identifier: pulumi.Input[_builtins.str],
                 severity: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] identifier: Unique identifier of the policy
        :param pulumi.Input[_builtins.str] severity: Policy failure response - 'warning' for continuation, 'error' for exit
        """
        pulumi.set(__self__, "identifier", identifier)
        pulumi.set(__self__, "severity", severity)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> pulumi.Input[_builtins.str]:
        """
        Unique identifier of the policy
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def severity(self) -> pulumi.Input[_builtins.str]:
        """
        Policy failure response - 'warning' for continuation, 'error' for exit
        """
        return pulumi.get(self, "severity")

    @severity.setter
    def severity(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "severity", value)


if not MYPY:
    class PrometheusConnectorHeaderArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key.
        """
        encrypted_value_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the Harness secret containing the encrypted value. 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}.
        """
        value: NotRequired[pulumi.Input[_builtins.str]]
        """
        Value.
        """
        value_encrypted: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Encrypted value.
        """
elif False:
    PrometheusConnectorHeaderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PrometheusConnectorHeaderArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 encrypted_value_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None,
                 value_encrypted: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] key: Key.
        :param pulumi.Input[_builtins.str] encrypted_value_ref: Reference to the Harness secret containing the encrypted value. 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}.
        :param pulumi.Input[_builtins.str] value: Value.
        :param pulumi.Input[_builtins.bool] value_encrypted: Encrypted value.
        """
        pulumi.set(__self__, "key", key)
        if encrypted_value_ref is not None:
            pulumi.set(__self__, "encrypted_value_ref", encrypted_value_ref)
        if value is not None:
            pulumi.set(__self__, "value", value)
        if value_encrypted is not None:
            pulumi.set(__self__, "value_encrypted", value_encrypted)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="encryptedValueRef")
    def encrypted_value_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the Harness secret containing the encrypted value. 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}.
        """
        return pulumi.get(self, "encrypted_value_ref")

    @encrypted_value_ref.setter
    def encrypted_value_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "encrypted_value_ref", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Value.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueEncrypted")
    def value_encrypted(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Encrypted value.
        """
        return pulumi.get(self, "value_encrypted")

    @value_encrypted.setter
    def value_encrypted(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "value_encrypted", value)


if not MYPY:
    class ProviderSpecArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        The type of the provider entity.
        """
        client_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Client Id of the OAuth app to connect
        """
        client_secret_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Client Secret Ref of the OAuth app to connect
        """
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Delegate selectors to fetch the access token
        """
        domain: NotRequired[pulumi.Input[_builtins.str]]
        """
        Host domain of the provider.
        """
        secret_manager_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Secret Manager Ref to store the access/refresh tokens
        """
elif False:
    ProviderSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderSpecArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 client_id: Optional[pulumi.Input[_builtins.str]] = None,
                 client_secret_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 domain: Optional[pulumi.Input[_builtins.str]] = None,
                 secret_manager_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] type: The type of the provider entity.
        :param pulumi.Input[_builtins.str] client_id: Client Id of the OAuth app to connect
        :param pulumi.Input[_builtins.str] client_secret_ref: Client Secret Ref of the OAuth app to connect
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: Delegate selectors to fetch the access token
        :param pulumi.Input[_builtins.str] domain: Host domain of the provider.
        :param pulumi.Input[_builtins.str] secret_manager_ref: Secret Manager Ref to store the access/refresh tokens
        """
        pulumi.set(__self__, "type", type)
        if client_id is not None:
            pulumi.set(__self__, "client_id", client_id)
        if client_secret_ref is not None:
            pulumi.set(__self__, "client_secret_ref", client_secret_ref)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if secret_manager_ref is not None:
            pulumi.set(__self__, "secret_manager_ref", secret_manager_ref)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        The type of the provider entity.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="clientId")
    def client_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Client Id of the OAuth app to connect
        """
        return pulumi.get(self, "client_id")

    @client_id.setter
    def client_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "client_id", value)

    @_builtins.property
    @pulumi.getter(name="clientSecretRef")
    def client_secret_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Client Secret Ref of the OAuth app to connect
        """
        return pulumi.get(self, "client_secret_ref")

    @client_secret_ref.setter
    def client_secret_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "client_secret_ref", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Delegate selectors to fetch the access token
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)

    @_builtins.property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Host domain of the provider.
        """
        return pulumi.get(self, "domain")

    @domain.setter
    def domain(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "domain", value)

    @_builtins.property
    @pulumi.getter(name="secretManagerRef")
    def secret_manager_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Secret Manager Ref to store the access/refresh tokens
        """
        return pulumi.get(self, "secret_manager_ref")

    @secret_manager_ref.setter
    def secret_manager_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "secret_manager_ref", value)


if not MYPY:
    class RepoRuleBranchBypassArgsDict(TypedDict):
        repo_owners: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Allow users with repository edit permission to bypass.
        """
        user_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of user ids with who can bypass.
        """
elif False:
    RepoRuleBranchBypassArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RepoRuleBranchBypassArgs:
    def __init__(__self__, *,
                 repo_owners: Optional[pulumi.Input[_builtins.bool]] = None,
                 user_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] repo_owners: Allow users with repository edit permission to bypass.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] user_ids: List of user ids with who can bypass.
        """
        if repo_owners is not None:
            pulumi.set(__self__, "repo_owners", repo_owners)
        if user_ids is not None:
            pulumi.set(__self__, "user_ids", user_ids)

    @_builtins.property
    @pulumi.getter(name="repoOwners")
    def repo_owners(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Allow users with repository edit permission to bypass.
        """
        return pulumi.get(self, "repo_owners")

    @repo_owners.setter
    def repo_owners(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "repo_owners", value)

    @_builtins.property
    @pulumi.getter(name="userIds")
    def user_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of user ids with who can bypass.
        """
        return pulumi.get(self, "user_ids")

    @user_ids.setter
    def user_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "user_ids", value)


if not MYPY:
    class RepoRuleBranchPatternArgsDict(TypedDict):
        default_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Should rule apply to default branch of the repository.
        """
        excludes: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Globstar branch patterns on which rules will NOT be applied.
        """
        includes: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Globstar branch patterns on which rules will be applied.
        """
elif False:
    RepoRuleBranchPatternArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RepoRuleBranchPatternArgs:
    def __init__(__self__, *,
                 default_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 excludes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 includes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.bool] default_branch: Should rule apply to default branch of the repository.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] excludes: Globstar branch patterns on which rules will NOT be applied.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] includes: Globstar branch patterns on which rules will be applied.
        """
        if default_branch is not None:
            pulumi.set(__self__, "default_branch", default_branch)
        if excludes is not None:
            pulumi.set(__self__, "excludes", excludes)
        if includes is not None:
            pulumi.set(__self__, "includes", includes)

    @_builtins.property
    @pulumi.getter(name="defaultBranch")
    def default_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Should rule apply to default branch of the repository.
        """
        return pulumi.get(self, "default_branch")

    @default_branch.setter
    def default_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "default_branch", value)

    @_builtins.property
    @pulumi.getter
    def excludes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Globstar branch patterns on which rules will NOT be applied.
        """
        return pulumi.get(self, "excludes")

    @excludes.setter
    def excludes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "excludes", value)

    @_builtins.property
    @pulumi.getter
    def includes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Globstar branch patterns on which rules will be applied.
        """
        return pulumi.get(self, "includes")

    @includes.setter
    def includes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "includes", value)


if not MYPY:
    class RepoRuleBranchPolicyArgsDict(TypedDict):
        allow_merge_strategies: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Limit which merge strategies are available to merge a pull request(Any of squash, rebase, merge).
        """
        block_branch_creation: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Only allow users with bypass permission to create matching branches.
        """
        block_branch_deletion: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Only allow users with bypass permission to delete matching branches.
        """
        delete_branch_on_merge: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Automatically delete the source branch of a pull request after it is merged.
        """
        require_code_owners: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Require approval on pull requests from one reviewer for each codeowner rule.
        """
        require_latest_commit_approval: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Require re-approval when there are new changes in the pull request.
        """
        require_minimum_approval_count: NotRequired[pulumi.Input[_builtins.int]]
        """
        Require approval on pull requests from a minimum number of reviewers.
        """
        require_no_change_request: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Require all request for changes have been resolved.
        """
        require_pull_request: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Do not allow any changes to matching branches without a pull request.
        """
        require_resolve_all_comments: NotRequired[pulumi.Input[_builtins.bool]]
        """
        All comments on a pull request must be resolved before it can be merged.
        """
        require_status_checks: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Selected status checks must pass before a pull request can be merged.
        """
elif False:
    RepoRuleBranchPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RepoRuleBranchPolicyArgs:
    def __init__(__self__, *,
                 allow_merge_strategies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 block_branch_creation: Optional[pulumi.Input[_builtins.bool]] = None,
                 block_branch_deletion: Optional[pulumi.Input[_builtins.bool]] = None,
                 delete_branch_on_merge: Optional[pulumi.Input[_builtins.bool]] = None,
                 require_code_owners: Optional[pulumi.Input[_builtins.bool]] = None,
                 require_latest_commit_approval: Optional[pulumi.Input[_builtins.bool]] = None,
                 require_minimum_approval_count: Optional[pulumi.Input[_builtins.int]] = None,
                 require_no_change_request: Optional[pulumi.Input[_builtins.bool]] = None,
                 require_pull_request: Optional[pulumi.Input[_builtins.bool]] = None,
                 require_resolve_all_comments: Optional[pulumi.Input[_builtins.bool]] = None,
                 require_status_checks: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allow_merge_strategies: Limit which merge strategies are available to merge a pull request(Any of squash, rebase, merge).
        :param pulumi.Input[_builtins.bool] block_branch_creation: Only allow users with bypass permission to create matching branches.
        :param pulumi.Input[_builtins.bool] block_branch_deletion: Only allow users with bypass permission to delete matching branches.
        :param pulumi.Input[_builtins.bool] delete_branch_on_merge: Automatically delete the source branch of a pull request after it is merged.
        :param pulumi.Input[_builtins.bool] require_code_owners: Require approval on pull requests from one reviewer for each codeowner rule.
        :param pulumi.Input[_builtins.bool] require_latest_commit_approval: Require re-approval when there are new changes in the pull request.
        :param pulumi.Input[_builtins.int] require_minimum_approval_count: Require approval on pull requests from a minimum number of reviewers.
        :param pulumi.Input[_builtins.bool] require_no_change_request: Require all request for changes have been resolved.
        :param pulumi.Input[_builtins.bool] require_pull_request: Do not allow any changes to matching branches without a pull request.
        :param pulumi.Input[_builtins.bool] require_resolve_all_comments: All comments on a pull request must be resolved before it can be merged.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] require_status_checks: Selected status checks must pass before a pull request can be merged.
        """
        if allow_merge_strategies is not None:
            pulumi.set(__self__, "allow_merge_strategies", allow_merge_strategies)
        if block_branch_creation is not None:
            pulumi.set(__self__, "block_branch_creation", block_branch_creation)
        if block_branch_deletion is not None:
            pulumi.set(__self__, "block_branch_deletion", block_branch_deletion)
        if delete_branch_on_merge is not None:
            pulumi.set(__self__, "delete_branch_on_merge", delete_branch_on_merge)
        if require_code_owners is not None:
            pulumi.set(__self__, "require_code_owners", require_code_owners)
        if require_latest_commit_approval is not None:
            pulumi.set(__self__, "require_latest_commit_approval", require_latest_commit_approval)
        if require_minimum_approval_count is not None:
            pulumi.set(__self__, "require_minimum_approval_count", require_minimum_approval_count)
        if require_no_change_request is not None:
            pulumi.set(__self__, "require_no_change_request", require_no_change_request)
        if require_pull_request is not None:
            pulumi.set(__self__, "require_pull_request", require_pull_request)
        if require_resolve_all_comments is not None:
            pulumi.set(__self__, "require_resolve_all_comments", require_resolve_all_comments)
        if require_status_checks is not None:
            pulumi.set(__self__, "require_status_checks", require_status_checks)

    @_builtins.property
    @pulumi.getter(name="allowMergeStrategies")
    def allow_merge_strategies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Limit which merge strategies are available to merge a pull request(Any of squash, rebase, merge).
        """
        return pulumi.get(self, "allow_merge_strategies")

    @allow_merge_strategies.setter
    def allow_merge_strategies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "allow_merge_strategies", value)

    @_builtins.property
    @pulumi.getter(name="blockBranchCreation")
    def block_branch_creation(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Only allow users with bypass permission to create matching branches.
        """
        return pulumi.get(self, "block_branch_creation")

    @block_branch_creation.setter
    def block_branch_creation(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "block_branch_creation", value)

    @_builtins.property
    @pulumi.getter(name="blockBranchDeletion")
    def block_branch_deletion(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Only allow users with bypass permission to delete matching branches.
        """
        return pulumi.get(self, "block_branch_deletion")

    @block_branch_deletion.setter
    def block_branch_deletion(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "block_branch_deletion", value)

    @_builtins.property
    @pulumi.getter(name="deleteBranchOnMerge")
    def delete_branch_on_merge(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Automatically delete the source branch of a pull request after it is merged.
        """
        return pulumi.get(self, "delete_branch_on_merge")

    @delete_branch_on_merge.setter
    def delete_branch_on_merge(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "delete_branch_on_merge", value)

    @_builtins.property
    @pulumi.getter(name="requireCodeOwners")
    def require_code_owners(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Require approval on pull requests from one reviewer for each codeowner rule.
        """
        return pulumi.get(self, "require_code_owners")

    @require_code_owners.setter
    def require_code_owners(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "require_code_owners", value)

    @_builtins.property
    @pulumi.getter(name="requireLatestCommitApproval")
    def require_latest_commit_approval(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Require re-approval when there are new changes in the pull request.
        """
        return pulumi.get(self, "require_latest_commit_approval")

    @require_latest_commit_approval.setter
    def require_latest_commit_approval(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "require_latest_commit_approval", value)

    @_builtins.property
    @pulumi.getter(name="requireMinimumApprovalCount")
    def require_minimum_approval_count(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Require approval on pull requests from a minimum number of reviewers.
        """
        return pulumi.get(self, "require_minimum_approval_count")

    @require_minimum_approval_count.setter
    def require_minimum_approval_count(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "require_minimum_approval_count", value)

    @_builtins.property
    @pulumi.getter(name="requireNoChangeRequest")
    def require_no_change_request(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Require all request for changes have been resolved.
        """
        return pulumi.get(self, "require_no_change_request")

    @require_no_change_request.setter
    def require_no_change_request(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "require_no_change_request", value)

    @_builtins.property
    @pulumi.getter(name="requirePullRequest")
    def require_pull_request(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Do not allow any changes to matching branches without a pull request.
        """
        return pulumi.get(self, "require_pull_request")

    @require_pull_request.setter
    def require_pull_request(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "require_pull_request", value)

    @_builtins.property
    @pulumi.getter(name="requireResolveAllComments")
    def require_resolve_all_comments(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        All comments on a pull request must be resolved before it can be merged.
        """
        return pulumi.get(self, "require_resolve_all_comments")

    @require_resolve_all_comments.setter
    def require_resolve_all_comments(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "require_resolve_all_comments", value)

    @_builtins.property
    @pulumi.getter(name="requireStatusChecks")
    def require_status_checks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Selected status checks must pass before a pull request can be merged.
        """
        return pulumi.get(self, "require_status_checks")

    @require_status_checks.setter
    def require_status_checks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "require_status_checks", value)


if not MYPY:
    class RepoSourceArgsDict(TypedDict):
        host: NotRequired[pulumi.Input[_builtins.str]]
        """
        The host URL for the import source.
        """
        password: NotRequired[pulumi.Input[_builtins.str]]
        """
        The password for authentication when importing.
        """
        repo: NotRequired[pulumi.Input[_builtins.str]]
        """
        The full identifier of the repository on the SCM provider's platform.
        """
        type: NotRequired[pulumi.Input[_builtins.str]]
        """
        The type of SCM provider (github, gitlab, bitbucket, stash, gitea, gogs) when importing.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        The username for authentication when importing.
        """
elif False:
    RepoSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RepoSourceArgs:
    def __init__(__self__, *,
                 host: Optional[pulumi.Input[_builtins.str]] = None,
                 password: Optional[pulumi.Input[_builtins.str]] = None,
                 repo: Optional[pulumi.Input[_builtins.str]] = None,
                 type: Optional[pulumi.Input[_builtins.str]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] host: The host URL for the import source.
        :param pulumi.Input[_builtins.str] password: The password for authentication when importing.
        :param pulumi.Input[_builtins.str] repo: The full identifier of the repository on the SCM provider's platform.
        :param pulumi.Input[_builtins.str] type: The type of SCM provider (github, gitlab, bitbucket, stash, gitea, gogs) when importing.
        :param pulumi.Input[_builtins.str] username: The username for authentication when importing.
        """
        if host is not None:
            pulumi.set(__self__, "host", host)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if repo is not None:
            pulumi.set(__self__, "repo", repo)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The host URL for the import source.
        """
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "host", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The password for authentication when importing.
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The full identifier of the repository on the SCM provider's platform.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The type of SCM provider (github, gitlab, bitbucket, stash, gitea, gogs) when importing.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The username for authentication when importing.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)


if not MYPY:
    class ResourceGroupIncludedScopeArgsDict(TypedDict):
        filter: pulumi.Input[_builtins.str]
        """
        Can be one of these 2 EXCLUDING*CHILD*SCOPES or INCLUDING*CHILD*SCOPES
        """
        account_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Account Identifier of the account
        """
        org_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Organization Identifier
        """
        project_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Project Identifier
        """
elif False:
    ResourceGroupIncludedScopeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ResourceGroupIncludedScopeArgs:
    def __init__(__self__, *,
                 filter: pulumi.Input[_builtins.str],
                 account_id: Optional[pulumi.Input[_builtins.str]] = None,
                 org_id: Optional[pulumi.Input[_builtins.str]] = None,
                 project_id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] filter: Can be one of these 2 EXCLUDING*CHILD*SCOPES or INCLUDING*CHILD*SCOPES
        :param pulumi.Input[_builtins.str] account_id: Account Identifier of the account
        :param pulumi.Input[_builtins.str] org_id: Organization Identifier
        :param pulumi.Input[_builtins.str] project_id: Project Identifier
        """
        pulumi.set(__self__, "filter", filter)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)
        if org_id is not None:
            pulumi.set(__self__, "org_id", org_id)
        if project_id is not None:
            pulumi.set(__self__, "project_id", project_id)

    @_builtins.property
    @pulumi.getter
    def filter(self) -> pulumi.Input[_builtins.str]:
        """
        Can be one of these 2 EXCLUDING*CHILD*SCOPES or INCLUDING*CHILD*SCOPES
        """
        return pulumi.get(self, "filter")

    @filter.setter
    def filter(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "filter", value)

    @_builtins.property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Account Identifier of the account
        """
        return pulumi.get(self, "account_id")

    @account_id.setter
    def account_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "account_id", value)

    @_builtins.property
    @pulumi.getter(name="orgId")
    def org_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Organization Identifier
        """
        return pulumi.get(self, "org_id")

    @org_id.setter
    def org_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "org_id", value)

    @_builtins.property
    @pulumi.getter(name="projectId")
    def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Project Identifier
        """
        return pulumi.get(self, "project_id")

    @project_id.setter
    def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project_id", value)


if not MYPY:
    class ResourceGroupResourceFilterArgsDict(TypedDict):
        include_all_resources: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Include all resource or not
        """
        resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceArgsDict']]]]
        """
        Resources for a resource group
        """
elif False:
    ResourceGroupResourceFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ResourceGroupResourceFilterArgs:
    def __init__(__self__, *,
                 include_all_resources: Optional[pulumi.Input[_builtins.bool]] = None,
                 resources: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceArgs']]]] = None):
        """
        :param pulumi.Input[_builtins.bool] include_all_resources: Include all resource or not
        :param pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceArgs']]] resources: Resources for a resource group
        """
        if include_all_resources is not None:
            pulumi.set(__self__, "include_all_resources", include_all_resources)
        if resources is not None:
            pulumi.set(__self__, "resources", resources)

    @_builtins.property
    @pulumi.getter(name="includeAllResources")
    def include_all_resources(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Include all resource or not
        """
        return pulumi.get(self, "include_all_resources")

    @include_all_resources.setter
    def include_all_resources(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "include_all_resources", value)

    @_builtins.property
    @pulumi.getter
    def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceArgs']]]]:
        """
        Resources for a resource group
        """
        return pulumi.get(self, "resources")

    @resources.setter
    def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceArgs']]]]):
        pulumi.set(self, "resources", value)


if not MYPY:
    class ResourceGroupResourceFilterResourceArgsDict(TypedDict):
        resource_type: pulumi.Input[_builtins.str]
        """
        Type of the resource
        """
        attribute_filters: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceAttributeFilterArgsDict']]]]
        """
        Used to filter resources on their attributes
        """
        identifiers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        List of the identifiers
        """
elif False:
    ResourceGroupResourceFilterResourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ResourceGroupResourceFilterResourceArgs:
    def __init__(__self__, *,
                 resource_type: pulumi.Input[_builtins.str],
                 attribute_filters: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceAttributeFilterArgs']]]] = None,
                 identifiers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] resource_type: Type of the resource
        :param pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceAttributeFilterArgs']]] attribute_filters: Used to filter resources on their attributes
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] identifiers: List of the identifiers
        """
        pulumi.set(__self__, "resource_type", resource_type)
        if attribute_filters is not None:
            pulumi.set(__self__, "attribute_filters", attribute_filters)
        if identifiers is not None:
            pulumi.set(__self__, "identifiers", identifiers)

    @_builtins.property
    @pulumi.getter(name="resourceType")
    def resource_type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the resource
        """
        return pulumi.get(self, "resource_type")

    @resource_type.setter
    def resource_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "resource_type", value)

    @_builtins.property
    @pulumi.getter(name="attributeFilters")
    def attribute_filters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceAttributeFilterArgs']]]]:
        """
        Used to filter resources on their attributes
        """
        return pulumi.get(self, "attribute_filters")

    @attribute_filters.setter
    def attribute_filters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupResourceFilterResourceAttributeFilterArgs']]]]):
        pulumi.set(self, "attribute_filters", value)

    @_builtins.property
    @pulumi.getter
    def identifiers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        List of the identifiers
        """
        return pulumi.get(self, "identifiers")

    @identifiers.setter
    def identifiers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "identifiers", value)


if not MYPY:
    class ResourceGroupResourceFilterResourceAttributeFilterArgsDict(TypedDict):
        attribute_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the attribute. Valid values are `category`, `type`, `labels`, `tag` or `tags`.
        """
        attribute_values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Value of the attributes.Valid values for `category` are [ARTIFACTORY,CLOUD*COST,CLOUD*PROVIDER,CODE*REPO,MONITORING,SECRET*MANAGER,TICKETING], for `type` are [Production,PreProduction], for `labels`, it can be using the syntax 'label:value', for `tag` or `tags` it can be any string.
        """
elif False:
    ResourceGroupResourceFilterResourceAttributeFilterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ResourceGroupResourceFilterResourceAttributeFilterArgs:
    def __init__(__self__, *,
                 attribute_name: Optional[pulumi.Input[_builtins.str]] = None,
                 attribute_values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] attribute_name: Name of the attribute. Valid values are `category`, `type`, `labels`, `tag` or `tags`.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] attribute_values: Value of the attributes.Valid values for `category` are [ARTIFACTORY,CLOUD*COST,CLOUD*PROVIDER,CODE*REPO,MONITORING,SECRET*MANAGER,TICKETING], for `type` are [Production,PreProduction], for `labels`, it can be using the syntax 'label:value', for `tag` or `tags` it can be any string.
        """
        if attribute_name is not None:
            pulumi.set(__self__, "attribute_name", attribute_name)
        if attribute_values is not None:
            pulumi.set(__self__, "attribute_values", attribute_values)

    @_builtins.property
    @pulumi.getter(name="attributeName")
    def attribute_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the attribute. Valid values are `category`, `type`, `labels`, `tag` or `tags`.
        """
        return pulumi.get(self, "attribute_name")

    @attribute_name.setter
    def attribute_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "attribute_name", value)

    @_builtins.property
    @pulumi.getter(name="attributeValues")
    def attribute_values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Value of the attributes.Valid values for `category` are [ARTIFACTORY,CLOUD*COST,CLOUD*PROVIDER,CODE*REPO,MONITORING,SECRET*MANAGER,TICKETING], for `type` are [Production,PreProduction], for `labels`, it can be using the syntax 'label:value', for `tag` or `tags` it can be any string.
        """
        return pulumi.get(self, "attribute_values")

    @attribute_values.setter
    def attribute_values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "attribute_values", value)


if not MYPY:
    class RoleAssignmentsPrincipalArgsDict(TypedDict):
        type: pulumi.Input[_builtins.str]
        """
        Type.
        """
        identifier: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier.
        """
        scope_level: NotRequired[pulumi.Input[_builtins.str]]
        """
        Scope level.
        """
elif False:
    RoleAssignmentsPrincipalArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class RoleAssignmentsPrincipalArgs:
    def __init__(__self__, *,
                 type: pulumi.Input[_builtins.str],
                 identifier: Optional[pulumi.Input[_builtins.str]] = None,
                 scope_level: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] type: Type.
        :param pulumi.Input[_builtins.str] identifier: Identifier.
        :param pulumi.Input[_builtins.str] scope_level: Scope level.
        """
        pulumi.set(__self__, "type", type)
        if identifier is not None:
            pulumi.set(__self__, "identifier", identifier)
        if scope_level is not None:
            pulumi.set(__self__, "scope_level", scope_level)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier.
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter(name="scopeLevel")
    def scope_level(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Scope level.
        """
        return pulumi.get(self, "scope_level")

    @scope_level.setter
    def scope_level(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "scope_level", value)


if not MYPY:
    class SecretFileAdditionalMetadataArgsDict(TypedDict):
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input['SecretFileAdditionalMetadataValueArgsDict']]]]
elif False:
    SecretFileAdditionalMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretFileAdditionalMetadataArgs:
    def __init__(__self__, *,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input['SecretFileAdditionalMetadataValueArgs']]]] = None):
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SecretFileAdditionalMetadataValueArgs']]]]:
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SecretFileAdditionalMetadataValueArgs']]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class SecretFileAdditionalMetadataValueArgsDict(TypedDict):
        gcp_project_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        GCP Project ID (for GCP Secret Manager)
        """
        kms_key_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        KMS Key ID (for AWS Secret Manager)
        """
        regions: NotRequired[pulumi.Input[_builtins.str]]
        """
        GCP region for the secret (for GCP Secret Manager)
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of the secret (for AWS/Azure Secret Manager)
        """
elif False:
    SecretFileAdditionalMetadataValueArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretFileAdditionalMetadataValueArgs:
    def __init__(__self__, *,
                 gcp_project_id: Optional[pulumi.Input[_builtins.str]] = None,
                 kms_key_id: Optional[pulumi.Input[_builtins.str]] = None,
                 regions: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] gcp_project_id: GCP Project ID (for GCP Secret Manager)
        :param pulumi.Input[_builtins.str] kms_key_id: KMS Key ID (for AWS Secret Manager)
        :param pulumi.Input[_builtins.str] regions: GCP region for the secret (for GCP Secret Manager)
        :param pulumi.Input[_builtins.str] version: Version of the secret (for AWS/Azure Secret Manager)
        """
        if gcp_project_id is not None:
            pulumi.set(__self__, "gcp_project_id", gcp_project_id)
        if kms_key_id is not None:
            pulumi.set(__self__, "kms_key_id", kms_key_id)
        if regions is not None:
            pulumi.set(__self__, "regions", regions)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="gcpProjectId")
    def gcp_project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        GCP Project ID (for GCP Secret Manager)
        """
        return pulumi.get(self, "gcp_project_id")

    @gcp_project_id.setter
    def gcp_project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "gcp_project_id", value)

    @_builtins.property
    @pulumi.getter(name="kmsKeyId")
    def kms_key_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        KMS Key ID (for AWS Secret Manager)
        """
        return pulumi.get(self, "kms_key_id")

    @kms_key_id.setter
    def kms_key_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kms_key_id", value)

    @_builtins.property
    @pulumi.getter
    def regions(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        GCP region for the secret (for GCP Secret Manager)
        """
        return pulumi.get(self, "regions")

    @regions.setter
    def regions(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "regions", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of the secret (for AWS/Azure Secret Manager)
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class SecretSshkeyKerberosArgsDict(TypedDict):
        principal: pulumi.Input[_builtins.str]
        """
        Username to use for authentication.
        """
        realm: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the password to use for authentication.
        """
        tgt_generation_method: NotRequired[pulumi.Input[_builtins.str]]
        """
        Method to generate tgt
        """
        tgt_key_tab_file_path_spec: NotRequired[pulumi.Input['SecretSshkeyKerberosTgtKeyTabFilePathSpecArgsDict']]
        """
        Authenticate to App Dynamics using username and password.
        """
        tgt_password_spec: NotRequired[pulumi.Input['SecretSshkeyKerberosTgtPasswordSpecArgsDict']]
        """
        Authenticate to App Dynamics using username and password.
        """
elif False:
    SecretSshkeyKerberosArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretSshkeyKerberosArgs:
    def __init__(__self__, *,
                 principal: pulumi.Input[_builtins.str],
                 realm: pulumi.Input[_builtins.str],
                 tgt_generation_method: Optional[pulumi.Input[_builtins.str]] = None,
                 tgt_key_tab_file_path_spec: Optional[pulumi.Input['SecretSshkeyKerberosTgtKeyTabFilePathSpecArgs']] = None,
                 tgt_password_spec: Optional[pulumi.Input['SecretSshkeyKerberosTgtPasswordSpecArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] principal: Username to use for authentication.
        :param pulumi.Input[_builtins.str] realm: Reference to a secret containing the password to use for authentication.
        :param pulumi.Input[_builtins.str] tgt_generation_method: Method to generate tgt
        :param pulumi.Input['SecretSshkeyKerberosTgtKeyTabFilePathSpecArgs'] tgt_key_tab_file_path_spec: Authenticate to App Dynamics using username and password.
        :param pulumi.Input['SecretSshkeyKerberosTgtPasswordSpecArgs'] tgt_password_spec: Authenticate to App Dynamics using username and password.
        """
        pulumi.set(__self__, "principal", principal)
        pulumi.set(__self__, "realm", realm)
        if tgt_generation_method is not None:
            pulumi.set(__self__, "tgt_generation_method", tgt_generation_method)
        if tgt_key_tab_file_path_spec is not None:
            pulumi.set(__self__, "tgt_key_tab_file_path_spec", tgt_key_tab_file_path_spec)
        if tgt_password_spec is not None:
            pulumi.set(__self__, "tgt_password_spec", tgt_password_spec)

    @_builtins.property
    @pulumi.getter
    def principal(self) -> pulumi.Input[_builtins.str]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "principal")

    @principal.setter
    def principal(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "principal", value)

    @_builtins.property
    @pulumi.getter
    def realm(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the password to use for authentication.
        """
        return pulumi.get(self, "realm")

    @realm.setter
    def realm(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "realm", value)

    @_builtins.property
    @pulumi.getter(name="tgtGenerationMethod")
    def tgt_generation_method(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Method to generate tgt
        """
        return pulumi.get(self, "tgt_generation_method")

    @tgt_generation_method.setter
    def tgt_generation_method(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tgt_generation_method", value)

    @_builtins.property
    @pulumi.getter(name="tgtKeyTabFilePathSpec")
    def tgt_key_tab_file_path_spec(self) -> Optional[pulumi.Input['SecretSshkeyKerberosTgtKeyTabFilePathSpecArgs']]:
        """
        Authenticate to App Dynamics using username and password.
        """
        return pulumi.get(self, "tgt_key_tab_file_path_spec")

    @tgt_key_tab_file_path_spec.setter
    def tgt_key_tab_file_path_spec(self, value: Optional[pulumi.Input['SecretSshkeyKerberosTgtKeyTabFilePathSpecArgs']]):
        pulumi.set(self, "tgt_key_tab_file_path_spec", value)

    @_builtins.property
    @pulumi.getter(name="tgtPasswordSpec")
    def tgt_password_spec(self) -> Optional[pulumi.Input['SecretSshkeyKerberosTgtPasswordSpecArgs']]:
        """
        Authenticate to App Dynamics using username and password.
        """
        return pulumi.get(self, "tgt_password_spec")

    @tgt_password_spec.setter
    def tgt_password_spec(self, value: Optional[pulumi.Input['SecretSshkeyKerberosTgtPasswordSpecArgs']]):
        pulumi.set(self, "tgt_password_spec", value)


if not MYPY:
    class SecretSshkeyKerberosTgtKeyTabFilePathSpecArgsDict(TypedDict):
        key_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        key path
        """
elif False:
    SecretSshkeyKerberosTgtKeyTabFilePathSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretSshkeyKerberosTgtKeyTabFilePathSpecArgs:
    def __init__(__self__, *,
                 key_path: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] key_path: key path
        """
        if key_path is not None:
            pulumi.set(__self__, "key_path", key_path)

    @_builtins.property
    @pulumi.getter(name="keyPath")
    def key_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        key path
        """
        return pulumi.get(self, "key_path")

    @key_path.setter
    def key_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "key_path", value)


if not MYPY:
    class SecretSshkeyKerberosTgtPasswordSpecArgsDict(TypedDict):
        password: NotRequired[pulumi.Input[_builtins.str]]
        """
        password. To reference a password at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a password at the account scope, prefix 'account` to the expression: account.{identifier}
        """
elif False:
    SecretSshkeyKerberosTgtPasswordSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretSshkeyKerberosTgtPasswordSpecArgs:
    def __init__(__self__, *,
                 password: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password: password. To reference a password at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a password at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        if password is not None:
            pulumi.set(__self__, "password", password)

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        password. To reference a password at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a password at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "password", value)


if not MYPY:
    class SecretSshkeySshArgsDict(TypedDict):
        credential_type: pulumi.Input[_builtins.str]
        """
        This specifies SSH credential type as Password, KeyPath or KeyReference
        """
        ssh_password_credential: NotRequired[pulumi.Input['SecretSshkeySshSshPasswordCredentialArgsDict']]
        """
        SSH credential of type keyReference
        """
        sshkey_path_credential: NotRequired[pulumi.Input['SecretSshkeySshSshkeyPathCredentialArgsDict']]
        """
        SSH credential of type keyPath
        """
        sshkey_reference_credential: NotRequired[pulumi.Input['SecretSshkeySshSshkeyReferenceCredentialArgsDict']]
        """
        SSH credential of type keyReference
        """
elif False:
    SecretSshkeySshArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretSshkeySshArgs:
    def __init__(__self__, *,
                 credential_type: pulumi.Input[_builtins.str],
                 ssh_password_credential: Optional[pulumi.Input['SecretSshkeySshSshPasswordCredentialArgs']] = None,
                 sshkey_path_credential: Optional[pulumi.Input['SecretSshkeySshSshkeyPathCredentialArgs']] = None,
                 sshkey_reference_credential: Optional[pulumi.Input['SecretSshkeySshSshkeyReferenceCredentialArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] credential_type: This specifies SSH credential type as Password, KeyPath or KeyReference
        :param pulumi.Input['SecretSshkeySshSshPasswordCredentialArgs'] ssh_password_credential: SSH credential of type keyReference
        :param pulumi.Input['SecretSshkeySshSshkeyPathCredentialArgs'] sshkey_path_credential: SSH credential of type keyPath
        :param pulumi.Input['SecretSshkeySshSshkeyReferenceCredentialArgs'] sshkey_reference_credential: SSH credential of type keyReference
        """
        pulumi.set(__self__, "credential_type", credential_type)
        if ssh_password_credential is not None:
            pulumi.set(__self__, "ssh_password_credential", ssh_password_credential)
        if sshkey_path_credential is not None:
            pulumi.set(__self__, "sshkey_path_credential", sshkey_path_credential)
        if sshkey_reference_credential is not None:
            pulumi.set(__self__, "sshkey_reference_credential", sshkey_reference_credential)

    @_builtins.property
    @pulumi.getter(name="credentialType")
    def credential_type(self) -> pulumi.Input[_builtins.str]:
        """
        This specifies SSH credential type as Password, KeyPath or KeyReference
        """
        return pulumi.get(self, "credential_type")

    @credential_type.setter
    def credential_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "credential_type", value)

    @_builtins.property
    @pulumi.getter(name="sshPasswordCredential")
    def ssh_password_credential(self) -> Optional[pulumi.Input['SecretSshkeySshSshPasswordCredentialArgs']]:
        """
        SSH credential of type keyReference
        """
        return pulumi.get(self, "ssh_password_credential")

    @ssh_password_credential.setter
    def ssh_password_credential(self, value: Optional[pulumi.Input['SecretSshkeySshSshPasswordCredentialArgs']]):
        pulumi.set(self, "ssh_password_credential", value)

    @_builtins.property
    @pulumi.getter(name="sshkeyPathCredential")
    def sshkey_path_credential(self) -> Optional[pulumi.Input['SecretSshkeySshSshkeyPathCredentialArgs']]:
        """
        SSH credential of type keyPath
        """
        return pulumi.get(self, "sshkey_path_credential")

    @sshkey_path_credential.setter
    def sshkey_path_credential(self, value: Optional[pulumi.Input['SecretSshkeySshSshkeyPathCredentialArgs']]):
        pulumi.set(self, "sshkey_path_credential", value)

    @_builtins.property
    @pulumi.getter(name="sshkeyReferenceCredential")
    def sshkey_reference_credential(self) -> Optional[pulumi.Input['SecretSshkeySshSshkeyReferenceCredentialArgs']]:
        """
        SSH credential of type keyReference
        """
        return pulumi.get(self, "sshkey_reference_credential")

    @sshkey_reference_credential.setter
    def sshkey_reference_credential(self, value: Optional[pulumi.Input['SecretSshkeySshSshkeyReferenceCredentialArgs']]):
        pulumi.set(self, "sshkey_reference_credential", value)


if not MYPY:
    class SecretSshkeySshSshPasswordCredentialArgsDict(TypedDict):
        password: pulumi.Input[_builtins.str]
        """
        SSH Password. To reference a password at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a password at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        user_name: pulumi.Input[_builtins.str]
        """
        SSH Username.
        """
elif False:
    SecretSshkeySshSshPasswordCredentialArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretSshkeySshSshPasswordCredentialArgs:
    def __init__(__self__, *,
                 password: pulumi.Input[_builtins.str],
                 user_name: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] password: SSH Password. To reference a password at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a password at the account scope, prefix 'account` to the expression: account.{identifier}
        :param pulumi.Input[_builtins.str] user_name: SSH Username.
        """
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "user_name", user_name)

    @_builtins.property
    @pulumi.getter
    def password(self) -> pulumi.Input[_builtins.str]:
        """
        SSH Password. To reference a password at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a password at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter(name="userName")
    def user_name(self) -> pulumi.Input[_builtins.str]:
        """
        SSH Username.
        """
        return pulumi.get(self, "user_name")

    @user_name.setter
    def user_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user_name", value)


if not MYPY:
    class SecretSshkeySshSshkeyPathCredentialArgsDict(TypedDict):
        key_path: pulumi.Input[_builtins.str]
        """
        Path of the key file.
        """
        user_name: pulumi.Input[_builtins.str]
        """
        SSH Username.
        """
        encrypted_passphrase: NotRequired[pulumi.Input[_builtins.str]]
        """
        Encrypted Passphrase . To reference a encryptedPassphrase at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a encryptedPassPhrase at the account scope, prefix 'account` to the expression: account.{identifier}
        """
elif False:
    SecretSshkeySshSshkeyPathCredentialArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretSshkeySshSshkeyPathCredentialArgs:
    def __init__(__self__, *,
                 key_path: pulumi.Input[_builtins.str],
                 user_name: pulumi.Input[_builtins.str],
                 encrypted_passphrase: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] key_path: Path of the key file.
        :param pulumi.Input[_builtins.str] user_name: SSH Username.
        :param pulumi.Input[_builtins.str] encrypted_passphrase: Encrypted Passphrase . To reference a encryptedPassphrase at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a encryptedPassPhrase at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        pulumi.set(__self__, "key_path", key_path)
        pulumi.set(__self__, "user_name", user_name)
        if encrypted_passphrase is not None:
            pulumi.set(__self__, "encrypted_passphrase", encrypted_passphrase)

    @_builtins.property
    @pulumi.getter(name="keyPath")
    def key_path(self) -> pulumi.Input[_builtins.str]:
        """
        Path of the key file.
        """
        return pulumi.get(self, "key_path")

    @key_path.setter
    def key_path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key_path", value)

    @_builtins.property
    @pulumi.getter(name="userName")
    def user_name(self) -> pulumi.Input[_builtins.str]:
        """
        SSH Username.
        """
        return pulumi.get(self, "user_name")

    @user_name.setter
    def user_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user_name", value)

    @_builtins.property
    @pulumi.getter(name="encryptedPassphrase")
    def encrypted_passphrase(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Encrypted Passphrase . To reference a encryptedPassphrase at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a encryptedPassPhrase at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        return pulumi.get(self, "encrypted_passphrase")

    @encrypted_passphrase.setter
    def encrypted_passphrase(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "encrypted_passphrase", value)


if not MYPY:
    class SecretSshkeySshSshkeyReferenceCredentialArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        SSH key. To reference a key at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a key at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        user_name: pulumi.Input[_builtins.str]
        """
        SSH Username.
        """
        encrypted_passphrase: NotRequired[pulumi.Input[_builtins.str]]
        """
        Encrypted Passphrase. To reference a encryptedPassphrase at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a encryptedPassPhrase at the account scope, prefix 'account` to the expression: account.{identifier}
        """
elif False:
    SecretSshkeySshSshkeyReferenceCredentialArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretSshkeySshSshkeyReferenceCredentialArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 user_name: pulumi.Input[_builtins.str],
                 encrypted_passphrase: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] key: SSH key. To reference a key at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a key at the account scope, prefix 'account` to the expression: account.{identifier}
        :param pulumi.Input[_builtins.str] user_name: SSH Username.
        :param pulumi.Input[_builtins.str] encrypted_passphrase: Encrypted Passphrase. To reference a encryptedPassphrase at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a encryptedPassPhrase at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "user_name", user_name)
        if encrypted_passphrase is not None:
            pulumi.set(__self__, "encrypted_passphrase", encrypted_passphrase)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        SSH key. To reference a key at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a key at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter(name="userName")
    def user_name(self) -> pulumi.Input[_builtins.str]:
        """
        SSH Username.
        """
        return pulumi.get(self, "user_name")

    @user_name.setter
    def user_name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "user_name", value)

    @_builtins.property
    @pulumi.getter(name="encryptedPassphrase")
    def encrypted_passphrase(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Encrypted Passphrase. To reference a encryptedPassphrase at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a encryptedPassPhrase at the account scope, prefix 'account` to the expression: account.{identifier}
        """
        return pulumi.get(self, "encrypted_passphrase")

    @encrypted_passphrase.setter
    def encrypted_passphrase(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "encrypted_passphrase", value)


if not MYPY:
    class SecretTextAdditionalMetadataArgsDict(TypedDict):
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input['SecretTextAdditionalMetadataValueArgsDict']]]]
elif False:
    SecretTextAdditionalMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretTextAdditionalMetadataArgs:
    def __init__(__self__, *,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input['SecretTextAdditionalMetadataValueArgs']]]] = None):
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SecretTextAdditionalMetadataValueArgs']]]]:
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SecretTextAdditionalMetadataValueArgs']]]]):
        pulumi.set(self, "values", value)


if not MYPY:
    class SecretTextAdditionalMetadataValueArgsDict(TypedDict):
        gcp_project_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        GCP Project ID (for GCP Secret Manager)
        """
        kms_key_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        KMS Key ID (for AWS Secret Manager)
        """
        regions: NotRequired[pulumi.Input[_builtins.str]]
        """
        GCP region for the secret (for GCP Secret Manager)
        """
        version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of the secret (for AWS/Azure Secret Manager)
        """
elif False:
    SecretTextAdditionalMetadataValueArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretTextAdditionalMetadataValueArgs:
    def __init__(__self__, *,
                 gcp_project_id: Optional[pulumi.Input[_builtins.str]] = None,
                 kms_key_id: Optional[pulumi.Input[_builtins.str]] = None,
                 regions: Optional[pulumi.Input[_builtins.str]] = None,
                 version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] gcp_project_id: GCP Project ID (for GCP Secret Manager)
        :param pulumi.Input[_builtins.str] kms_key_id: KMS Key ID (for AWS Secret Manager)
        :param pulumi.Input[_builtins.str] regions: GCP region for the secret (for GCP Secret Manager)
        :param pulumi.Input[_builtins.str] version: Version of the secret (for AWS/Azure Secret Manager)
        """
        if gcp_project_id is not None:
            pulumi.set(__self__, "gcp_project_id", gcp_project_id)
        if kms_key_id is not None:
            pulumi.set(__self__, "kms_key_id", kms_key_id)
        if regions is not None:
            pulumi.set(__self__, "regions", regions)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="gcpProjectId")
    def gcp_project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        GCP Project ID (for GCP Secret Manager)
        """
        return pulumi.get(self, "gcp_project_id")

    @gcp_project_id.setter
    def gcp_project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "gcp_project_id", value)

    @_builtins.property
    @pulumi.getter(name="kmsKeyId")
    def kms_key_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        KMS Key ID (for AWS Secret Manager)
        """
        return pulumi.get(self, "kms_key_id")

    @kms_key_id.setter
    def kms_key_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "kms_key_id", value)

    @_builtins.property
    @pulumi.getter
    def regions(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        GCP region for the secret (for GCP Secret Manager)
        """
        return pulumi.get(self, "regions")

    @regions.setter
    def regions(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "regions", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of the secret (for AWS/Azure Secret Manager)
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "version", value)


if not MYPY:
    class SecretWinrmKerberosArgsDict(TypedDict):
        principal: pulumi.Input[_builtins.str]
        """
        Kerberos principal.
        """
        realm: pulumi.Input[_builtins.str]
        """
        Kerberos realm.
        """
        skip_cert_check: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Skip certificate verification.
        """
        tgt_generation_method: NotRequired[pulumi.Input[_builtins.str]]
        """
        Method to generate TGT (Ticket Granting Ticket).
        """
        tgt_key_tab_file_path_spec: NotRequired[pulumi.Input['SecretWinrmKerberosTgtKeyTabFilePathSpecArgsDict']]
        """
        TGT generation using key tab file.
        """
        tgt_password_spec: NotRequired[pulumi.Input['SecretWinrmKerberosTgtPasswordSpecArgsDict']]
        """
        TGT generation using password.
        """
        use_no_profile: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Use no profile.
        """
        use_ssl: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Use SSL/TLS for WinRM communication.
        """
elif False:
    SecretWinrmKerberosArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretWinrmKerberosArgs:
    def __init__(__self__, *,
                 principal: pulumi.Input[_builtins.str],
                 realm: pulumi.Input[_builtins.str],
                 skip_cert_check: Optional[pulumi.Input[_builtins.bool]] = None,
                 tgt_generation_method: Optional[pulumi.Input[_builtins.str]] = None,
                 tgt_key_tab_file_path_spec: Optional[pulumi.Input['SecretWinrmKerberosTgtKeyTabFilePathSpecArgs']] = None,
                 tgt_password_spec: Optional[pulumi.Input['SecretWinrmKerberosTgtPasswordSpecArgs']] = None,
                 use_no_profile: Optional[pulumi.Input[_builtins.bool]] = None,
                 use_ssl: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] principal: Kerberos principal.
        :param pulumi.Input[_builtins.str] realm: Kerberos realm.
        :param pulumi.Input[_builtins.bool] skip_cert_check: Skip certificate verification.
        :param pulumi.Input[_builtins.str] tgt_generation_method: Method to generate TGT (Ticket Granting Ticket).
        :param pulumi.Input['SecretWinrmKerberosTgtKeyTabFilePathSpecArgs'] tgt_key_tab_file_path_spec: TGT generation using key tab file.
        :param pulumi.Input['SecretWinrmKerberosTgtPasswordSpecArgs'] tgt_password_spec: TGT generation using password.
        :param pulumi.Input[_builtins.bool] use_no_profile: Use no profile.
        :param pulumi.Input[_builtins.bool] use_ssl: Use SSL/TLS for WinRM communication.
        """
        pulumi.set(__self__, "principal", principal)
        pulumi.set(__self__, "realm", realm)
        if skip_cert_check is not None:
            pulumi.set(__self__, "skip_cert_check", skip_cert_check)
        if tgt_generation_method is not None:
            pulumi.set(__self__, "tgt_generation_method", tgt_generation_method)
        if tgt_key_tab_file_path_spec is not None:
            pulumi.set(__self__, "tgt_key_tab_file_path_spec", tgt_key_tab_file_path_spec)
        if tgt_password_spec is not None:
            pulumi.set(__self__, "tgt_password_spec", tgt_password_spec)
        if use_no_profile is not None:
            pulumi.set(__self__, "use_no_profile", use_no_profile)
        if use_ssl is not None:
            pulumi.set(__self__, "use_ssl", use_ssl)

    @_builtins.property
    @pulumi.getter
    def principal(self) -> pulumi.Input[_builtins.str]:
        """
        Kerberos principal.
        """
        return pulumi.get(self, "principal")

    @principal.setter
    def principal(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "principal", value)

    @_builtins.property
    @pulumi.getter
    def realm(self) -> pulumi.Input[_builtins.str]:
        """
        Kerberos realm.
        """
        return pulumi.get(self, "realm")

    @realm.setter
    def realm(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "realm", value)

    @_builtins.property
    @pulumi.getter(name="skipCertCheck")
    def skip_cert_check(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Skip certificate verification.
        """
        return pulumi.get(self, "skip_cert_check")

    @skip_cert_check.setter
    def skip_cert_check(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_cert_check", value)

    @_builtins.property
    @pulumi.getter(name="tgtGenerationMethod")
    def tgt_generation_method(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Method to generate TGT (Ticket Granting Ticket).
        """
        return pulumi.get(self, "tgt_generation_method")

    @tgt_generation_method.setter
    def tgt_generation_method(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "tgt_generation_method", value)

    @_builtins.property
    @pulumi.getter(name="tgtKeyTabFilePathSpec")
    def tgt_key_tab_file_path_spec(self) -> Optional[pulumi.Input['SecretWinrmKerberosTgtKeyTabFilePathSpecArgs']]:
        """
        TGT generation using key tab file.
        """
        return pulumi.get(self, "tgt_key_tab_file_path_spec")

    @tgt_key_tab_file_path_spec.setter
    def tgt_key_tab_file_path_spec(self, value: Optional[pulumi.Input['SecretWinrmKerberosTgtKeyTabFilePathSpecArgs']]):
        pulumi.set(self, "tgt_key_tab_file_path_spec", value)

    @_builtins.property
    @pulumi.getter(name="tgtPasswordSpec")
    def tgt_password_spec(self) -> Optional[pulumi.Input['SecretWinrmKerberosTgtPasswordSpecArgs']]:
        """
        TGT generation using password.
        """
        return pulumi.get(self, "tgt_password_spec")

    @tgt_password_spec.setter
    def tgt_password_spec(self, value: Optional[pulumi.Input['SecretWinrmKerberosTgtPasswordSpecArgs']]):
        pulumi.set(self, "tgt_password_spec", value)

    @_builtins.property
    @pulumi.getter(name="useNoProfile")
    def use_no_profile(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Use no profile.
        """
        return pulumi.get(self, "use_no_profile")

    @use_no_profile.setter
    def use_no_profile(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "use_no_profile", value)

    @_builtins.property
    @pulumi.getter(name="useSsl")
    def use_ssl(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Use SSL/TLS for WinRM communication.
        """
        return pulumi.get(self, "use_ssl")

    @use_ssl.setter
    def use_ssl(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "use_ssl", value)


if not MYPY:
    class SecretWinrmKerberosTgtKeyTabFilePathSpecArgsDict(TypedDict):
        key_path: pulumi.Input[_builtins.str]
        """
        Path to the key tab file.
        """
elif False:
    SecretWinrmKerberosTgtKeyTabFilePathSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretWinrmKerberosTgtKeyTabFilePathSpecArgs:
    def __init__(__self__, *,
                 key_path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key_path: Path to the key tab file.
        """
        pulumi.set(__self__, "key_path", key_path)

    @_builtins.property
    @pulumi.getter(name="keyPath")
    def key_path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to the key tab file.
        """
        return pulumi.get(self, "key_path")

    @key_path.setter
    def key_path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key_path", value)


if not MYPY:
    class SecretWinrmKerberosTgtPasswordSpecArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the password. 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}.
        """
elif False:
    SecretWinrmKerberosTgtPasswordSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretWinrmKerberosTgtPasswordSpecArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] password_ref: Reference to a secret containing the password. 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the password. 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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)


if not MYPY:
    class SecretWinrmNtlmArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: pulumi.Input[_builtins.str]
        """
        Username to use for authentication.
        """
        domain: NotRequired[pulumi.Input[_builtins.str]]
        """
        Domain name for NTLM authentication.
        """
        skip_cert_check: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Skip certificate verification.
        """
        use_no_profile: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Use no profile.
        """
        use_ssl: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Use SSL/TLS for WinRM communication.
        """
elif False:
    SecretWinrmNtlmArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SecretWinrmNtlmArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: pulumi.Input[_builtins.str],
                 domain: Optional[pulumi.Input[_builtins.str]] = None,
                 skip_cert_check: Optional[pulumi.Input[_builtins.bool]] = None,
                 use_no_profile: Optional[pulumi.Input[_builtins.bool]] = None,
                 use_ssl: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] domain: Domain name for NTLM authentication.
        :param pulumi.Input[_builtins.bool] skip_cert_check: Skip certificate verification.
        :param pulumi.Input[_builtins.bool] use_no_profile: Use no profile.
        :param pulumi.Input[_builtins.bool] use_ssl: Use SSL/TLS for WinRM communication.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        pulumi.set(__self__, "username", username)
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if skip_cert_check is not None:
            pulumi.set(__self__, "skip_cert_check", skip_cert_check)
        if use_no_profile is not None:
            pulumi.set(__self__, "use_no_profile", use_no_profile)
        if use_ssl is not None:
            pulumi.set(__self__, "use_ssl", use_ssl)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> pulumi.Input[_builtins.str]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Domain name for NTLM authentication.
        """
        return pulumi.get(self, "domain")

    @domain.setter
    def domain(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "domain", value)

    @_builtins.property
    @pulumi.getter(name="skipCertCheck")
    def skip_cert_check(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Skip certificate verification.
        """
        return pulumi.get(self, "skip_cert_check")

    @skip_cert_check.setter
    def skip_cert_check(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "skip_cert_check", value)

    @_builtins.property
    @pulumi.getter(name="useNoProfile")
    def use_no_profile(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Use no profile.
        """
        return pulumi.get(self, "use_no_profile")

    @use_no_profile.setter
    def use_no_profile(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "use_no_profile", value)

    @_builtins.property
    @pulumi.getter(name="useSsl")
    def use_ssl(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Use SSL/TLS for WinRM communication.
        """
        return pulumi.get(self, "use_ssl")

    @use_ssl.setter
    def use_ssl(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "use_ssl", value)


if not MYPY:
    class ServiceGitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        is_harness_code_repo: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the repo is harness code
        """
        is_new_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the branch being created is new
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        load_from_cache: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Load service yaml from catch
        """
        load_from_fallback_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Load service yaml from fallback branch
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    ServiceGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ServiceGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 is_harness_code_repo: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_new_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 load_from_cache: Optional[pulumi.Input[_builtins.bool]] = None,
                 load_from_fallback_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.bool] is_harness_code_repo: If the repo is harness code
        :param pulumi.Input[_builtins.bool] is_new_branch: If the branch being created is new
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.bool] load_from_cache: Load service yaml from catch
        :param pulumi.Input[_builtins.bool] load_from_fallback_branch: Load service yaml from fallback branch
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch is not None:
            pulumi.set(__self__, "branch", branch)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if is_harness_code_repo is not None:
            pulumi.set(__self__, "is_harness_code_repo", is_harness_code_repo)
        if is_new_branch is not None:
            pulumi.set(__self__, "is_new_branch", is_new_branch)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if load_from_cache is not None:
            pulumi.set(__self__, "load_from_cache", load_from_cache)
        if load_from_fallback_branch is not None:
            pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="isHarnessCodeRepo")
    def is_harness_code_repo(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the repo is harness code
        """
        return pulumi.get(self, "is_harness_code_repo")

    @is_harness_code_repo.setter
    def is_harness_code_repo(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_harness_code_repo", value)

    @_builtins.property
    @pulumi.getter(name="isNewBranch")
    def is_new_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the branch being created is new
        """
        return pulumi.get(self, "is_new_branch")

    @is_new_branch.setter
    def is_new_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_new_branch", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="loadFromCache")
    def load_from_cache(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Load service yaml from catch
        """
        return pulumi.get(self, "load_from_cache")

    @load_from_cache.setter
    def load_from_cache(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "load_from_cache", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Load service yaml from fallback branch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class ServiceNowConnectorAuthArgsDict(TypedDict):
        auth_type: pulumi.Input[_builtins.str]
        """
        Authentication types for Jira connector
        """
        adfs: NotRequired[pulumi.Input['ServiceNowConnectorAuthAdfsArgsDict']]
        """
        Authenticate using adfs client credentials with certificate.
        """
        refresh_token: NotRequired[pulumi.Input['ServiceNowConnectorAuthRefreshTokenArgsDict']]
        """
        Authenticate using refresh token grant type.
        """
        username_password: NotRequired[pulumi.Input['ServiceNowConnectorAuthUsernamePasswordArgsDict']]
        """
        Authenticate using username password.
        """
elif False:
    ServiceNowConnectorAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ServiceNowConnectorAuthArgs:
    def __init__(__self__, *,
                 auth_type: pulumi.Input[_builtins.str],
                 adfs: Optional[pulumi.Input['ServiceNowConnectorAuthAdfsArgs']] = None,
                 refresh_token: Optional[pulumi.Input['ServiceNowConnectorAuthRefreshTokenArgs']] = None,
                 username_password: Optional[pulumi.Input['ServiceNowConnectorAuthUsernamePasswordArgs']] = None):
        """
        :param pulumi.Input[_builtins.str] auth_type: Authentication types for Jira connector
        :param pulumi.Input['ServiceNowConnectorAuthAdfsArgs'] adfs: Authenticate using adfs client credentials with certificate.
        :param pulumi.Input['ServiceNowConnectorAuthRefreshTokenArgs'] refresh_token: Authenticate using refresh token grant type.
        :param pulumi.Input['ServiceNowConnectorAuthUsernamePasswordArgs'] username_password: Authenticate using username password.
        """
        pulumi.set(__self__, "auth_type", auth_type)
        if adfs is not None:
            pulumi.set(__self__, "adfs", adfs)
        if refresh_token is not None:
            pulumi.set(__self__, "refresh_token", refresh_token)
        if username_password is not None:
            pulumi.set(__self__, "username_password", username_password)

    @_builtins.property
    @pulumi.getter(name="authType")
    def auth_type(self) -> pulumi.Input[_builtins.str]:
        """
        Authentication types for Jira connector
        """
        return pulumi.get(self, "auth_type")

    @auth_type.setter
    def auth_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "auth_type", value)

    @_builtins.property
    @pulumi.getter
    def adfs(self) -> Optional[pulumi.Input['ServiceNowConnectorAuthAdfsArgs']]:
        """
        Authenticate using adfs client credentials with certificate.
        """
        return pulumi.get(self, "adfs")

    @adfs.setter
    def adfs(self, value: Optional[pulumi.Input['ServiceNowConnectorAuthAdfsArgs']]):
        pulumi.set(self, "adfs", value)

    @_builtins.property
    @pulumi.getter(name="refreshToken")
    def refresh_token(self) -> Optional[pulumi.Input['ServiceNowConnectorAuthRefreshTokenArgs']]:
        """
        Authenticate using refresh token grant type.
        """
        return pulumi.get(self, "refresh_token")

    @refresh_token.setter
    def refresh_token(self, value: Optional[pulumi.Input['ServiceNowConnectorAuthRefreshTokenArgs']]):
        pulumi.set(self, "refresh_token", value)

    @_builtins.property
    @pulumi.getter(name="usernamePassword")
    def username_password(self) -> Optional[pulumi.Input['ServiceNowConnectorAuthUsernamePasswordArgs']]:
        """
        Authenticate using username password.
        """
        return pulumi.get(self, "username_password")

    @username_password.setter
    def username_password(self, value: Optional[pulumi.Input['ServiceNowConnectorAuthUsernamePasswordArgs']]):
        pulumi.set(self, "username_password", value)


if not MYPY:
    class ServiceNowConnectorAuthAdfsArgsDict(TypedDict):
        adfs_url: pulumi.Input[_builtins.str]
        """
        asdf URL.
        """
        certificate_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the certificate 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}.
        """
        client_id_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the clientIdRef 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}.
        """
        private_key_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the privateKeyRef 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}.
        """
        resource_id_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the resourceIdRef 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}.
        """
elif False:
    ServiceNowConnectorAuthAdfsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ServiceNowConnectorAuthAdfsArgs:
    def __init__(__self__, *,
                 adfs_url: pulumi.Input[_builtins.str],
                 certificate_ref: pulumi.Input[_builtins.str],
                 client_id_ref: pulumi.Input[_builtins.str],
                 private_key_ref: pulumi.Input[_builtins.str],
                 resource_id_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] adfs_url: asdf URL.
        :param pulumi.Input[_builtins.str] certificate_ref: Reference to a secret containing the certificate 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}.
        :param pulumi.Input[_builtins.str] client_id_ref: Reference to a secret containing the clientIdRef 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}.
        :param pulumi.Input[_builtins.str] private_key_ref: Reference to a secret containing the privateKeyRef 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}.
        :param pulumi.Input[_builtins.str] resource_id_ref: Reference to a secret containing the resourceIdRef 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}.
        """
        pulumi.set(__self__, "adfs_url", adfs_url)
        pulumi.set(__self__, "certificate_ref", certificate_ref)
        pulumi.set(__self__, "client_id_ref", client_id_ref)
        pulumi.set(__self__, "private_key_ref", private_key_ref)
        pulumi.set(__self__, "resource_id_ref", resource_id_ref)

    @_builtins.property
    @pulumi.getter(name="adfsUrl")
    def adfs_url(self) -> pulumi.Input[_builtins.str]:
        """
        asdf URL.
        """
        return pulumi.get(self, "adfs_url")

    @adfs_url.setter
    def adfs_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "adfs_url", value)

    @_builtins.property
    @pulumi.getter(name="certificateRef")
    def certificate_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the certificate 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}.
        """
        return pulumi.get(self, "certificate_ref")

    @certificate_ref.setter
    def certificate_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "certificate_ref", value)

    @_builtins.property
    @pulumi.getter(name="clientIdRef")
    def client_id_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the clientIdRef 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}.
        """
        return pulumi.get(self, "client_id_ref")

    @client_id_ref.setter
    def client_id_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_id_ref", value)

    @_builtins.property
    @pulumi.getter(name="privateKeyRef")
    def private_key_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the privateKeyRef 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}.
        """
        return pulumi.get(self, "private_key_ref")

    @private_key_ref.setter
    def private_key_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "private_key_ref", value)

    @_builtins.property
    @pulumi.getter(name="resourceIdRef")
    def resource_id_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the resourceIdRef 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}.
        """
        return pulumi.get(self, "resource_id_ref")

    @resource_id_ref.setter
    def resource_id_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "resource_id_ref", value)


if not MYPY:
    class ServiceNowConnectorAuthRefreshTokenArgsDict(TypedDict):
        client_id_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the client id 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}.
        """
        refresh_token_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the refresh token 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}.
        """
        token_url: pulumi.Input[_builtins.str]
        """
        Token url to use for authentication.
        """
        client_secret_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to a secret containing the client secret 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}.
        """
        scope: NotRequired[pulumi.Input[_builtins.str]]
        """
        Scope string 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}.
        """
elif False:
    ServiceNowConnectorAuthRefreshTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ServiceNowConnectorAuthRefreshTokenArgs:
    def __init__(__self__, *,
                 client_id_ref: pulumi.Input[_builtins.str],
                 refresh_token_ref: pulumi.Input[_builtins.str],
                 token_url: pulumi.Input[_builtins.str],
                 client_secret_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 scope: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] client_id_ref: Reference to a secret containing the client id 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}.
        :param pulumi.Input[_builtins.str] refresh_token_ref: Reference to a secret containing the refresh token 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}.
        :param pulumi.Input[_builtins.str] token_url: Token url to use for authentication.
        :param pulumi.Input[_builtins.str] client_secret_ref: Reference to a secret containing the client secret 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}.
        :param pulumi.Input[_builtins.str] scope: Scope string 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}.
        """
        pulumi.set(__self__, "client_id_ref", client_id_ref)
        pulumi.set(__self__, "refresh_token_ref", refresh_token_ref)
        pulumi.set(__self__, "token_url", token_url)
        if client_secret_ref is not None:
            pulumi.set(__self__, "client_secret_ref", client_secret_ref)
        if scope is not None:
            pulumi.set(__self__, "scope", scope)

    @_builtins.property
    @pulumi.getter(name="clientIdRef")
    def client_id_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the client id 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}.
        """
        return pulumi.get(self, "client_id_ref")

    @client_id_ref.setter
    def client_id_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "client_id_ref", value)

    @_builtins.property
    @pulumi.getter(name="refreshTokenRef")
    def refresh_token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the refresh token 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}.
        """
        return pulumi.get(self, "refresh_token_ref")

    @refresh_token_ref.setter
    def refresh_token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "refresh_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="tokenUrl")
    def token_url(self) -> pulumi.Input[_builtins.str]:
        """
        Token url to use for authentication.
        """
        return pulumi.get(self, "token_url")

    @token_url.setter
    def token_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "token_url", value)

    @_builtins.property
    @pulumi.getter(name="clientSecretRef")
    def client_secret_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to a secret containing the client secret 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}.
        """
        return pulumi.get(self, "client_secret_ref")

    @client_secret_ref.setter
    def client_secret_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "client_secret_ref", value)

    @_builtins.property
    @pulumi.getter
    def scope(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Scope string 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}.
        """
        return pulumi.get(self, "scope")

    @scope.setter
    def scope(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "scope", value)


if not MYPY:
    class ServiceNowConnectorAuthUsernamePasswordArgsDict(TypedDict):
        password_ref: pulumi.Input[_builtins.str]
        """
        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}.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    ServiceNowConnectorAuthUsernamePasswordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ServiceNowConnectorAuthUsernamePasswordArgs:
    def __init__(__self__, *,
                 password_ref: pulumi.Input[_builtins.str],
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] password_ref: 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}.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class ServiceOverridesV2GitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        is_harness_code_repo: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the repo is in harness code
        """
        is_new_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        If the branch being created is new
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating override.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating override.
        """
        load_from_cache: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Load service yaml from catch
        """
        load_from_fallback_branch: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Load service yaml from fallback branch
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    ServiceOverridesV2GitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ServiceOverridesV2GitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 is_harness_code_repo: Optional[pulumi.Input[_builtins.bool]] = None,
                 is_new_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 load_from_cache: Optional[pulumi.Input[_builtins.bool]] = None,
                 load_from_fallback_branch: Optional[pulumi.Input[_builtins.bool]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.bool] is_harness_code_repo: If the repo is in harness code
        :param pulumi.Input[_builtins.bool] is_new_branch: If the branch being created is new
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating override.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating override.
        :param pulumi.Input[_builtins.bool] load_from_cache: Load service yaml from catch
        :param pulumi.Input[_builtins.bool] load_from_fallback_branch: Load service yaml from fallback branch
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch is not None:
            pulumi.set(__self__, "branch", branch)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if is_harness_code_repo is not None:
            pulumi.set(__self__, "is_harness_code_repo", is_harness_code_repo)
        if is_new_branch is not None:
            pulumi.set(__self__, "is_new_branch", is_new_branch)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if load_from_cache is not None:
            pulumi.set(__self__, "load_from_cache", load_from_cache)
        if load_from_fallback_branch is not None:
            pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="isHarnessCodeRepo")
    def is_harness_code_repo(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the repo is in harness code
        """
        return pulumi.get(self, "is_harness_code_repo")

    @is_harness_code_repo.setter
    def is_harness_code_repo(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_harness_code_repo", value)

    @_builtins.property
    @pulumi.getter(name="isNewBranch")
    def is_new_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        If the branch being created is new
        """
        return pulumi.get(self, "is_new_branch")

    @is_new_branch.setter
    def is_new_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_new_branch", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating override.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating override.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="loadFromCache")
    def load_from_cache(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Load service yaml from catch
        """
        return pulumi.get(self, "load_from_cache")

    @load_from_cache.setter
    def load_from_cache(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "load_from_cache", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Load service yaml from fallback branch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class SloRequestArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name for the SLO.
        """
        slo_target: pulumi.Input['SloRequestSloTargetArgsDict']
        """
        SLO Target specification.
        """
        spec: pulumi.Input[_builtins.str]
        """
        Specification of the SLO.
        """
        type: pulumi.Input[_builtins.str]
        """
        Type of the SLO.
        """
        user_journey_refs: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
        """
        User journey reference list for the SLO.
        """
        description: NotRequired[pulumi.Input[_builtins.str]]
        """
        Description for the SLO.
        """
        notification_rule_refs: NotRequired[pulumi.Input[Sequence[pulumi.Input['SloRequestNotificationRuleRefArgsDict']]]]
        """
        Notification rule references for the SLO.
        """
        tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Tags for the SLO. comma-separated key value string pairs.
        """
elif False:
    SloRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SloRequestArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 slo_target: pulumi.Input['SloRequestSloTargetArgs'],
                 spec: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str],
                 user_journey_refs: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
                 description: Optional[pulumi.Input[_builtins.str]] = None,
                 notification_rule_refs: Optional[pulumi.Input[Sequence[pulumi.Input['SloRequestNotificationRuleRefArgs']]]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name for the SLO.
        :param pulumi.Input['SloRequestSloTargetArgs'] slo_target: SLO Target specification.
        :param pulumi.Input[_builtins.str] spec: Specification of the SLO.
        :param pulumi.Input[_builtins.str] type: Type of the SLO.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] user_journey_refs: User journey reference list for the SLO.
        :param pulumi.Input[_builtins.str] description: Description for the SLO.
        :param pulumi.Input[Sequence[pulumi.Input['SloRequestNotificationRuleRefArgs']]] notification_rule_refs: Notification rule references for the SLO.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags for the SLO. comma-separated key value string pairs.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "slo_target", slo_target)
        pulumi.set(__self__, "spec", spec)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "user_journey_refs", user_journey_refs)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if notification_rule_refs is not None:
            pulumi.set(__self__, "notification_rule_refs", notification_rule_refs)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name for the SLO.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="sloTarget")
    def slo_target(self) -> pulumi.Input['SloRequestSloTargetArgs']:
        """
        SLO Target specification.
        """
        return pulumi.get(self, "slo_target")

    @slo_target.setter
    def slo_target(self, value: pulumi.Input['SloRequestSloTargetArgs']):
        pulumi.set(self, "slo_target", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> pulumi.Input[_builtins.str]:
        """
        Specification of the SLO.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "spec", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the SLO.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="userJourneyRefs")
    def user_journey_refs(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
        """
        User journey reference list for the SLO.
        """
        return pulumi.get(self, "user_journey_refs")

    @user_journey_refs.setter
    def user_journey_refs(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
        pulumi.set(self, "user_journey_refs", value)

    @_builtins.property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Description for the SLO.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "description", value)

    @_builtins.property
    @pulumi.getter(name="notificationRuleRefs")
    def notification_rule_refs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SloRequestNotificationRuleRefArgs']]]]:
        """
        Notification rule references for the SLO.
        """
        return pulumi.get(self, "notification_rule_refs")

    @notification_rule_refs.setter
    def notification_rule_refs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SloRequestNotificationRuleRefArgs']]]]):
        pulumi.set(self, "notification_rule_refs", value)

    @_builtins.property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Tags for the SLO. comma-separated key value string pairs.
        """
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "tags", value)


if not MYPY:
    class SloRequestNotificationRuleRefArgsDict(TypedDict):
        enabled: pulumi.Input[_builtins.bool]
        """
        Enable or disable notification rule reference for the SLO.
        """
        notification_rule_ref: pulumi.Input[_builtins.str]
        """
        Notification rule reference for the SLO.
        """
elif False:
    SloRequestNotificationRuleRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SloRequestNotificationRuleRefArgs:
    def __init__(__self__, *,
                 enabled: pulumi.Input[_builtins.bool],
                 notification_rule_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.bool] enabled: Enable or disable notification rule reference for the SLO.
        :param pulumi.Input[_builtins.str] notification_rule_ref: Notification rule reference for the SLO.
        """
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "notification_rule_ref", notification_rule_ref)

    @_builtins.property
    @pulumi.getter
    def enabled(self) -> pulumi.Input[_builtins.bool]:
        """
        Enable or disable notification rule reference for the SLO.
        """
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: pulumi.Input[_builtins.bool]):
        pulumi.set(self, "enabled", value)

    @_builtins.property
    @pulumi.getter(name="notificationRuleRef")
    def notification_rule_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Notification rule reference for the SLO.
        """
        return pulumi.get(self, "notification_rule_ref")

    @notification_rule_ref.setter
    def notification_rule_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "notification_rule_ref", value)


if not MYPY:
    class SloRequestSloTargetArgsDict(TypedDict):
        slo_target_percentage: pulumi.Input[_builtins.float]
        """
        Target percentage for the SLO.
        """
        spec: pulumi.Input[_builtins.str]
        """
        Specification of the SLO Target.
        """
        type: pulumi.Input[_builtins.str]
        """
        Type of the SLO target.
        """
elif False:
    SloRequestSloTargetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SloRequestSloTargetArgs:
    def __init__(__self__, *,
                 slo_target_percentage: pulumi.Input[_builtins.float],
                 spec: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.float] slo_target_percentage: Target percentage for the SLO.
        :param pulumi.Input[_builtins.str] spec: Specification of the SLO Target.
        :param pulumi.Input[_builtins.str] type: Type of the SLO target.
        """
        pulumi.set(__self__, "slo_target_percentage", slo_target_percentage)
        pulumi.set(__self__, "spec", spec)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="sloTargetPercentage")
    def slo_target_percentage(self) -> pulumi.Input[_builtins.float]:
        """
        Target percentage for the SLO.
        """
        return pulumi.get(self, "slo_target_percentage")

    @slo_target_percentage.setter
    def slo_target_percentage(self, value: pulumi.Input[_builtins.float]):
        pulumi.set(self, "slo_target_percentage", value)

    @_builtins.property
    @pulumi.getter
    def spec(self) -> pulumi.Input[_builtins.str]:
        """
        Specification of the SLO Target.
        """
        return pulumi.get(self, "spec")

    @spec.setter
    def spec(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "spec", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of the SLO target.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)


if not MYPY:
    class SpotConnectorPermanentTokenArgsDict(TypedDict):
        api_token_ref: pulumi.Input[_builtins.str]
        """
        Reference to the Harness secret containing the permanent api token. 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}.
        """
        delegate_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Connect only using delegates with these tags.
        """
        execute_on_delegate: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Execute on delegate or not.
        """
        spot_account_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Spot account id.
        """
        spot_account_id_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference to the Harness secret containing the spot account id. 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}.
        """
elif False:
    SpotConnectorPermanentTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SpotConnectorPermanentTokenArgs:
    def __init__(__self__, *,
                 api_token_ref: pulumi.Input[_builtins.str],
                 delegate_selectors: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 execute_on_delegate: Optional[pulumi.Input[_builtins.bool]] = None,
                 spot_account_id: Optional[pulumi.Input[_builtins.str]] = None,
                 spot_account_id_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] api_token_ref: Reference to the Harness secret containing the permanent api token. 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}.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] delegate_selectors: Connect only using delegates with these tags.
        :param pulumi.Input[_builtins.bool] execute_on_delegate: Execute on delegate or not.
        :param pulumi.Input[_builtins.str] spot_account_id: Spot account id.
        :param pulumi.Input[_builtins.str] spot_account_id_ref: Reference to the Harness secret containing the spot account id. 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}.
        """
        pulumi.set(__self__, "api_token_ref", api_token_ref)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)
        if execute_on_delegate is not None:
            pulumi.set(__self__, "execute_on_delegate", execute_on_delegate)
        if spot_account_id is not None:
            pulumi.set(__self__, "spot_account_id", spot_account_id)
        if spot_account_id_ref is not None:
            pulumi.set(__self__, "spot_account_id_ref", spot_account_id_ref)

    @_builtins.property
    @pulumi.getter(name="apiTokenRef")
    def api_token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to the Harness secret containing the permanent api token. 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}.
        """
        return pulumi.get(self, "api_token_ref")

    @api_token_ref.setter
    def api_token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api_token_ref", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Connect only using delegates with these tags.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "delegate_selectors", value)

    @_builtins.property
    @pulumi.getter(name="executeOnDelegate")
    def execute_on_delegate(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Execute on delegate or not.
        """
        return pulumi.get(self, "execute_on_delegate")

    @execute_on_delegate.setter
    def execute_on_delegate(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "execute_on_delegate", value)

    @_builtins.property
    @pulumi.getter(name="spotAccountId")
    def spot_account_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Spot account id.
        """
        return pulumi.get(self, "spot_account_id")

    @spot_account_id.setter
    def spot_account_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "spot_account_id", value)

    @_builtins.property
    @pulumi.getter(name="spotAccountIdRef")
    def spot_account_id_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference to the Harness secret containing the spot account id. 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}.
        """
        return pulumi.get(self, "spot_account_id_ref")

    @spot_account_id_ref.setter
    def spot_account_id_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "spot_account_id_ref", value)


if not MYPY:
    class TasConnectorCredentialsArgsDict(TypedDict):
        tas_manual_details: pulumi.Input['TasConnectorCredentialsTasManualDetailsArgsDict']
        """
        Authenticate to Tas using manual details.
        """
        type: pulumi.Input[_builtins.str]
        """
        Type can be ManualConfig.
        """
elif False:
    TasConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TasConnectorCredentialsArgs:
    def __init__(__self__, *,
                 tas_manual_details: pulumi.Input['TasConnectorCredentialsTasManualDetailsArgs'],
                 type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input['TasConnectorCredentialsTasManualDetailsArgs'] tas_manual_details: Authenticate to Tas using manual details.
        :param pulumi.Input[_builtins.str] type: Type can be ManualConfig.
        """
        pulumi.set(__self__, "tas_manual_details", tas_manual_details)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="tasManualDetails")
    def tas_manual_details(self) -> pulumi.Input['TasConnectorCredentialsTasManualDetailsArgs']:
        """
        Authenticate to Tas using manual details.
        """
        return pulumi.get(self, "tas_manual_details")

    @tas_manual_details.setter
    def tas_manual_details(self, value: pulumi.Input['TasConnectorCredentialsTasManualDetailsArgs']):
        pulumi.set(self, "tas_manual_details", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type can be ManualConfig.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)


if not MYPY:
    class TasConnectorCredentialsTasManualDetailsArgsDict(TypedDict):
        endpoint_url: pulumi.Input[_builtins.str]
        """
        URL of the Tas server.
        """
        password_ref: pulumi.Input[_builtins.str]
        """
        Reference of the secret for the password. 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}.
        """
        reference_token: NotRequired[pulumi.Input[_builtins.str]]
        """
        Reference token for authentication.
        """
        username: NotRequired[pulumi.Input[_builtins.str]]
        """
        Username to use for authentication.
        """
        username_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        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}.
        """
elif False:
    TasConnectorCredentialsTasManualDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TasConnectorCredentialsTasManualDetailsArgs:
    def __init__(__self__, *,
                 endpoint_url: pulumi.Input[_builtins.str],
                 password_ref: pulumi.Input[_builtins.str],
                 reference_token: Optional[pulumi.Input[_builtins.str]] = None,
                 username: Optional[pulumi.Input[_builtins.str]] = None,
                 username_ref: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] endpoint_url: URL of the Tas server.
        :param pulumi.Input[_builtins.str] password_ref: Reference of the secret for the password. 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}.
        :param pulumi.Input[_builtins.str] reference_token: Reference token for authentication.
        :param pulumi.Input[_builtins.str] username: Username to use for authentication.
        :param pulumi.Input[_builtins.str] username_ref: 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}.
        """
        pulumi.set(__self__, "endpoint_url", endpoint_url)
        pulumi.set(__self__, "password_ref", password_ref)
        if reference_token is not None:
            pulumi.set(__self__, "reference_token", reference_token)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if username_ref is not None:
            pulumi.set(__self__, "username_ref", username_ref)

    @_builtins.property
    @pulumi.getter(name="endpointUrl")
    def endpoint_url(self) -> pulumi.Input[_builtins.str]:
        """
        URL of the Tas server.
        """
        return pulumi.get(self, "endpoint_url")

    @endpoint_url.setter
    def endpoint_url(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "endpoint_url", value)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference of the secret for the password. 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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter(name="referenceToken")
    def reference_token(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Reference token for authentication.
        """
        return pulumi.get(self, "reference_token")

    @reference_token.setter
    def reference_token(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "reference_token", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username to use for authentication.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter(name="usernameRef")
    def username_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        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}.
        """
        return pulumi.get(self, "username_ref")

    @username_ref.setter
    def username_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "username_ref", value)


if not MYPY:
    class TemplateFiltersFilterPropertiesArgsDict(TypedDict):
        filter_type: pulumi.Input[_builtins.str]
        """
        Corresponding Entity of the filters. Currently supported types are {TemplateSetup, TemplateExecution, Template}.
        """
        tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Tags to associate with the resource. Tags should be in the form `name:value`.
        """
elif False:
    TemplateFiltersFilterPropertiesArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TemplateFiltersFilterPropertiesArgs:
    def __init__(__self__, *,
                 filter_type: pulumi.Input[_builtins.str],
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
        """
        :param pulumi.Input[_builtins.str] filter_type: Corresponding Entity of the filters. Currently supported types are {TemplateSetup, TemplateExecution, Template}.
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags to associate with the resource. Tags should be in the form `name:value`.
        """
        pulumi.set(__self__, "filter_type", filter_type)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

    @_builtins.property
    @pulumi.getter(name="filterType")
    def filter_type(self) -> pulumi.Input[_builtins.str]:
        """
        Corresponding Entity of the filters. Currently supported types are {TemplateSetup, TemplateExecution, Template}.
        """
        return pulumi.get(self, "filter_type")

    @filter_type.setter
    def filter_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "filter_type", value)

    @_builtins.property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Tags to associate with the resource. Tags should be in the form `name:value`.
        """
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
        pulumi.set(self, "tags", value)


if not MYPY:
    class TemplateGitDetailsArgsDict(TypedDict):
        base_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        commit_message: NotRequired[pulumi.Input[_builtins.str]]
        """
        Commit message used for the merge commit.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        last_commit_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
        store_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    TemplateGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TemplateGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 branch_name: Optional[pulumi.Input[_builtins.str]] = None,
                 commit_message: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 last_commit_id: Optional[pulumi.Input[_builtins.str]] = None,
                 last_object_id: Optional[pulumi.Input[_builtins.str]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None,
                 store_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param pulumi.Input[_builtins.str] branch_name: Name of the branch.
        :param pulumi.Input[_builtins.str] commit_message: Commit message used for the merge commit.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.str] last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        :param pulumi.Input[_builtins.str] store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        if base_branch is not None:
            pulumi.set(__self__, "base_branch", base_branch)
        if branch_name is not None:
            pulumi.set(__self__, "branch_name", branch_name)
        if commit_message is not None:
            pulumi.set(__self__, "commit_message", commit_message)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if last_commit_id is not None:
            pulumi.set(__self__, "last_commit_id", last_commit_id)
        if last_object_id is not None:
            pulumi.set(__self__, "last_object_id", last_object_id)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if store_type is not None:
            pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity. To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class TemplateGitImportDetailsArgsDict(TypedDict):
        branch_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the branch.
        """
        connector_ref: NotRequired[pulumi.Input[_builtins.str]]
        """
        Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        file_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        File path of the Entity in the repository.
        """
        is_force_import: NotRequired[pulumi.Input[_builtins.bool]]
        repo_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the repository.
        """
elif False:
    TemplateGitImportDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TemplateGitImportDetailsArgs:
    def __init__(__self__, *,
                 branch_name: Optional[pulumi.Input[_builtins.str]] = None,
                 connector_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 file_path: Optional[pulumi.Input[_builtins.str]] = None,
                 is_force_import: Optional[pulumi.Input[_builtins.bool]] = None,
                 repo_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] branch_name: Name of the branch.
        :param pulumi.Input[_builtins.str] connector_ref: Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        :param pulumi.Input[_builtins.str] file_path: File path of the Entity in the repository.
        :param pulumi.Input[_builtins.str] repo_name: Name of the repository.
        """
        if branch_name is not None:
            pulumi.set(__self__, "branch_name", branch_name)
        if connector_ref is not None:
            pulumi.set(__self__, "connector_ref", connector_ref)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if is_force_import is not None:
            pulumi.set(__self__, "is_force_import", is_force_import)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifier of the Harness Connector used for importing entity from Git To reference a connector at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a connector at the account scope, prefix 'account` to the expression: account.{identifier}.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="isForceImport")
    def is_force_import(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "is_force_import")

    @is_force_import.setter
    def is_force_import(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "is_force_import", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repo_name", value)


if not MYPY:
    class TemplateTemplateImportRequestArgsDict(TypedDict):
        template_description: NotRequired[pulumi.Input[_builtins.str]]
        """
        Description of the template.
        """
        template_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the template.
        """
        template_version: NotRequired[pulumi.Input[_builtins.str]]
        """
        Version of the template.
        """
elif False:
    TemplateTemplateImportRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TemplateTemplateImportRequestArgs:
    def __init__(__self__, *,
                 template_description: Optional[pulumi.Input[_builtins.str]] = None,
                 template_name: Optional[pulumi.Input[_builtins.str]] = None,
                 template_version: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] template_description: Description of the template.
        :param pulumi.Input[_builtins.str] template_name: Name of the template.
        :param pulumi.Input[_builtins.str] template_version: Version of the template.
        """
        if template_description is not None:
            pulumi.set(__self__, "template_description", template_description)
        if template_name is not None:
            pulumi.set(__self__, "template_name", template_name)
        if template_version is not None:
            pulumi.set(__self__, "template_version", template_version)

    @_builtins.property
    @pulumi.getter(name="templateDescription")
    def template_description(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Description of the template.
        """
        return pulumi.get(self, "template_description")

    @template_description.setter
    def template_description(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "template_description", value)

    @_builtins.property
    @pulumi.getter(name="templateName")
    def template_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the template.
        """
        return pulumi.get(self, "template_name")

    @template_name.setter
    def template_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "template_name", value)

    @_builtins.property
    @pulumi.getter(name="templateVersion")
    def template_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Version of the template.
        """
        return pulumi.get(self, "template_version")

    @template_version.setter
    def template_version(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "template_version", value)


if not MYPY:
    class TerraformCloudConnectorCredentialsArgsDict(TypedDict):
        api_token: pulumi.Input['TerraformCloudConnectorCredentialsApiTokenArgsDict']
        """
        API token credentials to use for authentication.
        """
elif False:
    TerraformCloudConnectorCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TerraformCloudConnectorCredentialsArgs:
    def __init__(__self__, *,
                 api_token: pulumi.Input['TerraformCloudConnectorCredentialsApiTokenArgs']):
        """
        :param pulumi.Input['TerraformCloudConnectorCredentialsApiTokenArgs'] api_token: API token credentials to use for authentication.
        """
        pulumi.set(__self__, "api_token", api_token)

    @_builtins.property
    @pulumi.getter(name="apiToken")
    def api_token(self) -> pulumi.Input['TerraformCloudConnectorCredentialsApiTokenArgs']:
        """
        API token credentials to use for authentication.
        """
        return pulumi.get(self, "api_token")

    @api_token.setter
    def api_token(self, value: pulumi.Input['TerraformCloudConnectorCredentialsApiTokenArgs']):
        pulumi.set(self, "api_token", value)


if not MYPY:
    class TerraformCloudConnectorCredentialsApiTokenArgsDict(TypedDict):
        api_token_ref: pulumi.Input[_builtins.str]
        """
        Reference to a secret containing the API token 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}.
        """
elif False:
    TerraformCloudConnectorCredentialsApiTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TerraformCloudConnectorCredentialsApiTokenArgs:
    def __init__(__self__, *,
                 api_token_ref: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] api_token_ref: Reference to a secret containing the API token 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}.
        """
        pulumi.set(__self__, "api_token_ref", api_token_ref)

    @_builtins.property
    @pulumi.getter(name="apiTokenRef")
    def api_token_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Reference to a secret containing the API token 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}.
        """
        return pulumi.get(self, "api_token_ref")

    @api_token_ref.setter
    def api_token_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "api_token_ref", value)


if not MYPY:
    class UserRoleBindingArgsDict(TypedDict):
        managed_role: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Managed Role of the user.
        """
        resource_group_identifier: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource Group Identifier of the user.
        """
        resource_group_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Resource Group Name of the user.
        """
        role_identifier: NotRequired[pulumi.Input[_builtins.str]]
        """
        Role Identifier of the user.
        """
        role_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Role Name Identifier of the user.
        """
elif False:
    UserRoleBindingArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class UserRoleBindingArgs:
    def __init__(__self__, *,
                 managed_role: Optional[pulumi.Input[_builtins.bool]] = None,
                 resource_group_identifier: Optional[pulumi.Input[_builtins.str]] = None,
                 resource_group_name: Optional[pulumi.Input[_builtins.str]] = None,
                 role_identifier: Optional[pulumi.Input[_builtins.str]] = None,
                 role_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] managed_role: Managed Role of the user.
        :param pulumi.Input[_builtins.str] resource_group_identifier: Resource Group Identifier of the user.
        :param pulumi.Input[_builtins.str] resource_group_name: Resource Group Name of the user.
        :param pulumi.Input[_builtins.str] role_identifier: Role Identifier of the user.
        :param pulumi.Input[_builtins.str] role_name: Role Name Identifier of the user.
        """
        if managed_role is not None:
            pulumi.set(__self__, "managed_role", managed_role)
        if resource_group_identifier is not None:
            pulumi.set(__self__, "resource_group_identifier", resource_group_identifier)
        if resource_group_name is not None:
            pulumi.set(__self__, "resource_group_name", resource_group_name)
        if role_identifier is not None:
            pulumi.set(__self__, "role_identifier", role_identifier)
        if role_name is not None:
            pulumi.set(__self__, "role_name", role_name)

    @_builtins.property
    @pulumi.getter(name="managedRole")
    def managed_role(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Managed Role of the user.
        """
        return pulumi.get(self, "managed_role")

    @managed_role.setter
    def managed_role(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "managed_role", value)

    @_builtins.property
    @pulumi.getter(name="resourceGroupIdentifier")
    def resource_group_identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource Group Identifier of the user.
        """
        return pulumi.get(self, "resource_group_identifier")

    @resource_group_identifier.setter
    def resource_group_identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "resource_group_identifier", value)

    @_builtins.property
    @pulumi.getter(name="resourceGroupName")
    def resource_group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Resource Group Name of the user.
        """
        return pulumi.get(self, "resource_group_name")

    @resource_group_name.setter
    def resource_group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "resource_group_name", value)

    @_builtins.property
    @pulumi.getter(name="roleIdentifier")
    def role_identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Role Identifier of the user.
        """
        return pulumi.get(self, "role_identifier")

    @role_identifier.setter
    def role_identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "role_identifier", value)

    @_builtins.property
    @pulumi.getter(name="roleName")
    def role_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Role Name Identifier of the user.
        """
        return pulumi.get(self, "role_name")

    @role_name.setter
    def role_name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "role_name", value)


if not MYPY:
    class UsergroupNotificationConfigArgsDict(TypedDict):
        group_email: NotRequired[pulumi.Input[_builtins.str]]
        """
        Group email.
        """
        microsoft_teams_webhook_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        Url of Microsoft teams webhook.
        """
        pager_duty_key: NotRequired[pulumi.Input[_builtins.str]]
        """
        Pager duty key.
        """
        send_email_to_all_users: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Send email to all the group members.
        """
        slack_webhook_url: NotRequired[pulumi.Input[_builtins.str]]
        """
        Url of slack webhook.
        """
        type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Can be one of EMAIL, SLACK, PAGERDUTY, MSTEAMS.
        """
elif False:
    UsergroupNotificationConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class UsergroupNotificationConfigArgs:
    def __init__(__self__, *,
                 group_email: Optional[pulumi.Input[_builtins.str]] = None,
                 microsoft_teams_webhook_url: Optional[pulumi.Input[_builtins.str]] = None,
                 pager_duty_key: Optional[pulumi.Input[_builtins.str]] = None,
                 send_email_to_all_users: Optional[pulumi.Input[_builtins.bool]] = None,
                 slack_webhook_url: Optional[pulumi.Input[_builtins.str]] = None,
                 type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] group_email: Group email.
        :param pulumi.Input[_builtins.str] microsoft_teams_webhook_url: Url of Microsoft teams webhook.
        :param pulumi.Input[_builtins.str] pager_duty_key: Pager duty key.
        :param pulumi.Input[_builtins.bool] send_email_to_all_users: Send email to all the group members.
        :param pulumi.Input[_builtins.str] slack_webhook_url: Url of slack webhook.
        :param pulumi.Input[_builtins.str] type: Can be one of EMAIL, SLACK, PAGERDUTY, MSTEAMS.
        """
        if group_email is not None:
            pulumi.set(__self__, "group_email", group_email)
        if microsoft_teams_webhook_url is not None:
            pulumi.set(__self__, "microsoft_teams_webhook_url", microsoft_teams_webhook_url)
        if pager_duty_key is not None:
            pulumi.set(__self__, "pager_duty_key", pager_duty_key)
        if send_email_to_all_users is not None:
            pulumi.set(__self__, "send_email_to_all_users", send_email_to_all_users)
        if slack_webhook_url is not None:
            pulumi.set(__self__, "slack_webhook_url", slack_webhook_url)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="groupEmail")
    def group_email(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Group email.
        """
        return pulumi.get(self, "group_email")

    @group_email.setter
    def group_email(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "group_email", value)

    @_builtins.property
    @pulumi.getter(name="microsoftTeamsWebhookUrl")
    def microsoft_teams_webhook_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Url of Microsoft teams webhook.
        """
        return pulumi.get(self, "microsoft_teams_webhook_url")

    @microsoft_teams_webhook_url.setter
    def microsoft_teams_webhook_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "microsoft_teams_webhook_url", value)

    @_builtins.property
    @pulumi.getter(name="pagerDutyKey")
    def pager_duty_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Pager duty key.
        """
        return pulumi.get(self, "pager_duty_key")

    @pager_duty_key.setter
    def pager_duty_key(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "pager_duty_key", value)

    @_builtins.property
    @pulumi.getter(name="sendEmailToAllUsers")
    def send_email_to_all_users(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Send email to all the group members.
        """
        return pulumi.get(self, "send_email_to_all_users")

    @send_email_to_all_users.setter
    def send_email_to_all_users(self, value: Optional[pulumi.Input[_builtins.bool]]):
        pulumi.set(self, "send_email_to_all_users", value)

    @_builtins.property
    @pulumi.getter(name="slackWebhookUrl")
    def slack_webhook_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Url of slack webhook.
        """
        return pulumi.get(self, "slack_webhook_url")

    @slack_webhook_url.setter
    def slack_webhook_url(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "slack_webhook_url", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Can be one of EMAIL, SLACK, PAGERDUTY, MSTEAMS.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "type", value)


if not MYPY:
    class VariablesSpecArgsDict(TypedDict):
        fixed_value: pulumi.Input[_builtins.str]
        """
        FixedValue of the variable
        """
        value_type: pulumi.Input[_builtins.str]
        """
        Type of Value of the Variable. For now only FIXED is supported
        """
elif False:
    VariablesSpecArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class VariablesSpecArgs:
    def __init__(__self__, *,
                 fixed_value: pulumi.Input[_builtins.str],
                 value_type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] fixed_value: FixedValue of the variable
        :param pulumi.Input[_builtins.str] value_type: Type of Value of the Variable. For now only FIXED is supported
        """
        pulumi.set(__self__, "fixed_value", fixed_value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter(name="fixedValue")
    def fixed_value(self) -> pulumi.Input[_builtins.str]:
        """
        FixedValue of the variable
        """
        return pulumi.get(self, "fixed_value")

    @fixed_value.setter
    def fixed_value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "fixed_value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> pulumi.Input[_builtins.str]:
        """
        Type of Value of the Variable. For now only FIXED is supported
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class WorkspaceConnectorArgsDict(TypedDict):
        connector_ref: pulumi.Input[_builtins.str]
        """
        Connector Ref is the reference to the connector
        """
        type: pulumi.Input[_builtins.str]
        """
        Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
elif False:
    WorkspaceConnectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class WorkspaceConnectorArgs:
    def __init__(__self__, *,
                 connector_ref: pulumi.Input[_builtins.str],
                 type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] connector_ref: Connector Ref is the reference to the connector
        :param pulumi.Input[_builtins.str] type: Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
        pulumi.set(__self__, "connector_ref", connector_ref)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> pulumi.Input[_builtins.str]:
        """
        Connector Ref is the reference to the connector
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> pulumi.Input[_builtins.str]:
        """
        Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "type", value)


if not MYPY:
    class WorkspaceEnvironmentVariableArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key is the identifier for the variable. Must be unique within the workspace.
        """
        value: pulumi.Input[_builtins.str]
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        value_type: pulumi.Input[_builtins.str]
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
elif False:
    WorkspaceEnvironmentVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class WorkspaceEnvironmentVariableArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str],
                 value_type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key is the identifier for the variable. Must be unique within the workspace.
        :param pulumi.Input[_builtins.str] value: Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        :param pulumi.Input[_builtins.str] value_type: Value type indicates the value type of the variable. Currently we support string and secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key is the identifier for the variable. Must be unique within the workspace.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> pulumi.Input[_builtins.str]:
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class WorkspaceTerraformVariableArgsDict(TypedDict):
        key: pulumi.Input[_builtins.str]
        """
        Key is the identifier for the variable. Must be unique within the workspace.
        """
        value: pulumi.Input[_builtins.str]
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        value_type: pulumi.Input[_builtins.str]
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
elif False:
    WorkspaceTerraformVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class WorkspaceTerraformVariableArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[_builtins.str],
                 value: pulumi.Input[_builtins.str],
                 value_type: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] key: Key is the identifier for the variable. Must be unique within the workspace.
        :param pulumi.Input[_builtins.str] value: Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        :param pulumi.Input[_builtins.str] value_type: Value type indicates the value type of the variable. Currently we support string and secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter
    def key(self) -> pulumi.Input[_builtins.str]:
        """
        Key is the identifier for the variable. Must be unique within the workspace.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> pulumi.Input[_builtins.str]:
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> pulumi.Input[_builtins.str]:
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class WorkspaceTerraformVariableFileArgsDict(TypedDict):
        repository: pulumi.Input[_builtins.str]
        """
        Repository is the name of the repository to fetch the code from.
        """
        repository_connector: pulumi.Input[_builtins.str]
        """
        Repository connector is the reference to the connector used to fetch the variables.
        """
        repository_branch: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        """
        repository_commit: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        """
        repository_path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository path is the path in which the variables reside.
        """
        repository_sha: NotRequired[pulumi.Input[_builtins.str]]
        """
        Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
elif False:
    WorkspaceTerraformVariableFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class WorkspaceTerraformVariableFileArgs:
    def __init__(__self__, *,
                 repository: pulumi.Input[_builtins.str],
                 repository_connector: pulumi.Input[_builtins.str],
                 repository_branch: Optional[pulumi.Input[_builtins.str]] = None,
                 repository_commit: Optional[pulumi.Input[_builtins.str]] = None,
                 repository_path: Optional[pulumi.Input[_builtins.str]] = None,
                 repository_sha: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] repository: Repository is the name of the repository to fetch the code from.
        :param pulumi.Input[_builtins.str] repository_connector: Repository connector is the reference to the connector used to fetch the variables.
        :param pulumi.Input[_builtins.str] repository_branch: Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        :param pulumi.Input[_builtins.str] repository_commit: Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        :param pulumi.Input[_builtins.str] repository_path: Repository path is the path in which the variables reside.
        :param pulumi.Input[_builtins.str] repository_sha: Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
        pulumi.set(__self__, "repository", repository)
        pulumi.set(__self__, "repository_connector", repository_connector)
        if repository_branch is not None:
            pulumi.set(__self__, "repository_branch", repository_branch)
        if repository_commit is not None:
            pulumi.set(__self__, "repository_commit", repository_commit)
        if repository_path is not None:
            pulumi.set(__self__, "repository_path", repository_path)
        if repository_sha is not None:
            pulumi.set(__self__, "repository_sha", repository_sha)

    @_builtins.property
    @pulumi.getter
    def repository(self) -> pulumi.Input[_builtins.str]:
        """
        Repository is the name of the repository to fetch the code from.
        """
        return pulumi.get(self, "repository")

    @repository.setter
    def repository(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repository", value)

    @_builtins.property
    @pulumi.getter(name="repositoryConnector")
    def repository_connector(self) -> pulumi.Input[_builtins.str]:
        """
        Repository connector is the reference to the connector used to fetch the variables.
        """
        return pulumi.get(self, "repository_connector")

    @repository_connector.setter
    def repository_connector(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "repository_connector", value)

    @_builtins.property
    @pulumi.getter(name="repositoryBranch")
    def repository_branch(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        """
        return pulumi.get(self, "repository_branch")

    @repository_branch.setter
    def repository_branch(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_branch", value)

    @_builtins.property
    @pulumi.getter(name="repositoryCommit")
    def repository_commit(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        """
        return pulumi.get(self, "repository_commit")

    @repository_commit.setter
    def repository_commit(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_commit", value)

    @_builtins.property
    @pulumi.getter(name="repositoryPath")
    def repository_path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository path is the path in which the variables reside.
        """
        return pulumi.get(self, "repository_path")

    @repository_path.setter
    def repository_path(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_path", value)

    @_builtins.property
    @pulumi.getter(name="repositorySha")
    def repository_sha(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
        return pulumi.get(self, "repository_sha")

    @repository_sha.setter
    def repository_sha(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "repository_sha", value)


if not MYPY:
    class GetCentralNotificationChannelChannelArgsDict(TypedDict):
        headers: Sequence['GetCentralNotificationChannelChannelHeaderArgsDict']
        """
        Custom HTTP headers to include in webhook requests.
        """
        api_key: NotRequired[_builtins.str]
        """
        API key for the webhook or integration.
        """
        datadog_urls: NotRequired[Sequence[_builtins.str]]
        """
        List of Datadog webhook URLs.
        """
        delegate_selectors: NotRequired[Sequence[_builtins.str]]
        """
        List of delegate selectors to use for sending notifications.
        """
        email_ids: NotRequired[Sequence[_builtins.str]]
        """
        List of email addresses to notify.
        """
        execute_on_delegate: NotRequired[_builtins.bool]
        """
        Whether to execute the notification logic on delegate.
        """
        ms_team_keys: NotRequired[Sequence[_builtins.str]]
        """
        List of Microsoft Teams integration keys.
        """
        pager_duty_integration_keys: NotRequired[Sequence[_builtins.str]]
        """
        List of PagerDuty integration keys.
        """
        slack_webhook_urls: NotRequired[Sequence[_builtins.str]]
        """
        List of Slack webhook URLs to send notifications to.
        """
        user_groups: NotRequired[Sequence['GetCentralNotificationChannelChannelUserGroupArgsDict']]
        """
        List of user groups to notify.
        """
        webhook_urls: NotRequired[Sequence[_builtins.str]]
        """
        List of generic webhook URLs.
        """
elif False:
    GetCentralNotificationChannelChannelArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetCentralNotificationChannelChannelArgs:
    def __init__(__self__, *,
                 headers: Sequence['GetCentralNotificationChannelChannelHeaderArgs'],
                 api_key: Optional[_builtins.str] = None,
                 datadog_urls: Optional[Sequence[_builtins.str]] = None,
                 delegate_selectors: Optional[Sequence[_builtins.str]] = None,
                 email_ids: Optional[Sequence[_builtins.str]] = None,
                 execute_on_delegate: Optional[_builtins.bool] = None,
                 ms_team_keys: Optional[Sequence[_builtins.str]] = None,
                 pager_duty_integration_keys: Optional[Sequence[_builtins.str]] = None,
                 slack_webhook_urls: Optional[Sequence[_builtins.str]] = None,
                 user_groups: Optional[Sequence['GetCentralNotificationChannelChannelUserGroupArgs']] = None,
                 webhook_urls: Optional[Sequence[_builtins.str]] = None):
        """
        :param Sequence['GetCentralNotificationChannelChannelHeaderArgs'] headers: Custom HTTP headers to include in webhook requests.
        :param _builtins.str api_key: API key for the webhook or integration.
        :param Sequence[_builtins.str] datadog_urls: List of Datadog webhook URLs.
        :param Sequence[_builtins.str] delegate_selectors: List of delegate selectors to use for sending notifications.
        :param Sequence[_builtins.str] email_ids: List of email addresses to notify.
        :param _builtins.bool execute_on_delegate: Whether to execute the notification logic on delegate.
        :param Sequence[_builtins.str] ms_team_keys: List of Microsoft Teams integration keys.
        :param Sequence[_builtins.str] pager_duty_integration_keys: List of PagerDuty integration keys.
        :param Sequence[_builtins.str] slack_webhook_urls: List of Slack webhook URLs to send notifications to.
        :param Sequence['GetCentralNotificationChannelChannelUserGroupArgs'] user_groups: List of user groups to notify.
        :param Sequence[_builtins.str] webhook_urls: List of generic webhook URLs.
        """
        pulumi.set(__self__, "headers", headers)
        if api_key is not None:
            pulumi.set(__self__, "api_key", api_key)
        if datadog_urls is not None:
            pulumi.set(__self__, "datadog_urls", datadog_urls)
        if delegate_selectors is not None:
            pulumi.set(__self__, "delegate_selectors", delegate_selectors)
        if email_ids is not None:
            pulumi.set(__self__, "email_ids", email_ids)
        if execute_on_delegate is not None:
            pulumi.set(__self__, "execute_on_delegate", execute_on_delegate)
        if ms_team_keys is not None:
            pulumi.set(__self__, "ms_team_keys", ms_team_keys)
        if pager_duty_integration_keys is not None:
            pulumi.set(__self__, "pager_duty_integration_keys", pager_duty_integration_keys)
        if slack_webhook_urls is not None:
            pulumi.set(__self__, "slack_webhook_urls", slack_webhook_urls)
        if user_groups is not None:
            pulumi.set(__self__, "user_groups", user_groups)
        if webhook_urls is not None:
            pulumi.set(__self__, "webhook_urls", webhook_urls)

    @_builtins.property
    @pulumi.getter
    def headers(self) -> Sequence['GetCentralNotificationChannelChannelHeaderArgs']:
        """
        Custom HTTP headers to include in webhook requests.
        """
        return pulumi.get(self, "headers")

    @headers.setter
    def headers(self, value: Sequence['GetCentralNotificationChannelChannelHeaderArgs']):
        pulumi.set(self, "headers", value)

    @_builtins.property
    @pulumi.getter(name="apiKey")
    def api_key(self) -> Optional[_builtins.str]:
        """
        API key for the webhook or integration.
        """
        return pulumi.get(self, "api_key")

    @api_key.setter
    def api_key(self, value: Optional[_builtins.str]):
        pulumi.set(self, "api_key", value)

    @_builtins.property
    @pulumi.getter(name="datadogUrls")
    def datadog_urls(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of Datadog webhook URLs.
        """
        return pulumi.get(self, "datadog_urls")

    @datadog_urls.setter
    def datadog_urls(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "datadog_urls", value)

    @_builtins.property
    @pulumi.getter(name="delegateSelectors")
    def delegate_selectors(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of delegate selectors to use for sending notifications.
        """
        return pulumi.get(self, "delegate_selectors")

    @delegate_selectors.setter
    def delegate_selectors(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "delegate_selectors", value)

    @_builtins.property
    @pulumi.getter(name="emailIds")
    def email_ids(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of email addresses to notify.
        """
        return pulumi.get(self, "email_ids")

    @email_ids.setter
    def email_ids(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "email_ids", value)

    @_builtins.property
    @pulumi.getter(name="executeOnDelegate")
    def execute_on_delegate(self) -> Optional[_builtins.bool]:
        """
        Whether to execute the notification logic on delegate.
        """
        return pulumi.get(self, "execute_on_delegate")

    @execute_on_delegate.setter
    def execute_on_delegate(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "execute_on_delegate", value)

    @_builtins.property
    @pulumi.getter(name="msTeamKeys")
    def ms_team_keys(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of Microsoft Teams integration keys.
        """
        return pulumi.get(self, "ms_team_keys")

    @ms_team_keys.setter
    def ms_team_keys(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "ms_team_keys", value)

    @_builtins.property
    @pulumi.getter(name="pagerDutyIntegrationKeys")
    def pager_duty_integration_keys(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of PagerDuty integration keys.
        """
        return pulumi.get(self, "pager_duty_integration_keys")

    @pager_duty_integration_keys.setter
    def pager_duty_integration_keys(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "pager_duty_integration_keys", value)

    @_builtins.property
    @pulumi.getter(name="slackWebhookUrls")
    def slack_webhook_urls(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of Slack webhook URLs to send notifications to.
        """
        return pulumi.get(self, "slack_webhook_urls")

    @slack_webhook_urls.setter
    def slack_webhook_urls(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "slack_webhook_urls", value)

    @_builtins.property
    @pulumi.getter(name="userGroups")
    def user_groups(self) -> Optional[Sequence['GetCentralNotificationChannelChannelUserGroupArgs']]:
        """
        List of user groups to notify.
        """
        return pulumi.get(self, "user_groups")

    @user_groups.setter
    def user_groups(self, value: Optional[Sequence['GetCentralNotificationChannelChannelUserGroupArgs']]):
        pulumi.set(self, "user_groups", value)

    @_builtins.property
    @pulumi.getter(name="webhookUrls")
    def webhook_urls(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of generic webhook URLs.
        """
        return pulumi.get(self, "webhook_urls")

    @webhook_urls.setter
    def webhook_urls(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "webhook_urls", value)


if not MYPY:
    class GetCentralNotificationChannelChannelHeaderArgsDict(TypedDict):
        key: _builtins.str
        """
        Header key name.
        """
        value: _builtins.str
        """
        Header value.
        """
elif False:
    GetCentralNotificationChannelChannelHeaderArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetCentralNotificationChannelChannelHeaderArgs:
    def __init__(__self__, *,
                 key: _builtins.str,
                 value: _builtins.str):
        """
        :param _builtins.str key: Header key name.
        :param _builtins.str value: Header value.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> _builtins.str:
        """
        Header key name.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: _builtins.str):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        """
        Header value.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)


if not MYPY:
    class GetCentralNotificationChannelChannelUserGroupArgsDict(TypedDict):
        identifier: NotRequired[_builtins.str]
        """
        Identifier of the user group.
        """
elif False:
    GetCentralNotificationChannelChannelUserGroupArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetCentralNotificationChannelChannelUserGroupArgs:
    def __init__(__self__, *,
                 identifier: Optional[_builtins.str] = None):
        """
        :param _builtins.str identifier: Identifier of the user group.
        """
        if identifier is not None:
            pulumi.set(__self__, "identifier", identifier)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> Optional[_builtins.str]:
        """
        Identifier of the user group.
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: Optional[_builtins.str]):
        pulumi.set(self, "identifier", value)


if not MYPY:
    class GetCentralNotificationRuleCustomNotificationTemplateRefArgsDict(TypedDict):
        template_ref: _builtins.str
        version_label: _builtins.str
        variables: NotRequired[Sequence['GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict']]
elif False:
    GetCentralNotificationRuleCustomNotificationTemplateRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetCentralNotificationRuleCustomNotificationTemplateRefArgs:
    def __init__(__self__, *,
                 template_ref: _builtins.str,
                 version_label: _builtins.str,
                 variables: Optional[Sequence['GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']] = None):
        pulumi.set(__self__, "template_ref", template_ref)
        pulumi.set(__self__, "version_label", version_label)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @_builtins.property
    @pulumi.getter(name="templateRef")
    def template_ref(self) -> _builtins.str:
        return pulumi.get(self, "template_ref")

    @template_ref.setter
    def template_ref(self, value: _builtins.str):
        pulumi.set(self, "template_ref", value)

    @_builtins.property
    @pulumi.getter(name="versionLabel")
    def version_label(self) -> _builtins.str:
        return pulumi.get(self, "version_label")

    @version_label.setter
    def version_label(self, value: _builtins.str):
        pulumi.set(self, "version_label", value)

    @_builtins.property
    @pulumi.getter
    def variables(self) -> Optional[Sequence['GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]:
        return pulumi.get(self, "variables")

    @variables.setter
    def variables(self, value: Optional[Sequence['GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]):
        pulumi.set(self, "variables", value)


if not MYPY:
    class GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict(TypedDict):
        name: _builtins.str
        value: _builtins.str
        type: NotRequired[_builtins.str]
elif False:
    GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetCentralNotificationRuleCustomNotificationTemplateRefVariableArgs:
    def __init__(__self__, *,
                 name: _builtins.str,
                 value: _builtins.str,
                 type: Optional[_builtins.str] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter
    def name(self) -> _builtins.str:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: _builtins.str):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[_builtins.str]):
        pulumi.set(self, "type", value)


if not MYPY:
    class GetCentralNotificationRuleNotificationConditionArgsDict(TypedDict):
        condition_name: _builtins.str
        notification_event_configs: Sequence['GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict']
elif False:
    GetCentralNotificationRuleNotificationConditionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetCentralNotificationRuleNotificationConditionArgs:
    def __init__(__self__, *,
                 condition_name: _builtins.str,
                 notification_event_configs: Sequence['GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']):
        pulumi.set(__self__, "condition_name", condition_name)
        pulumi.set(__self__, "notification_event_configs", notification_event_configs)

    @_builtins.property
    @pulumi.getter(name="conditionName")
    def condition_name(self) -> _builtins.str:
        return pulumi.get(self, "condition_name")

    @condition_name.setter
    def condition_name(self, value: _builtins.str):
        pulumi.set(self, "condition_name", value)

    @_builtins.property
    @pulumi.getter(name="notificationEventConfigs")
    def notification_event_configs(self) -> Sequence['GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']:
        return pulumi.get(self, "notification_event_configs")

    @notification_event_configs.setter
    def notification_event_configs(self, value: Sequence['GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']):
        pulumi.set(self, "notification_event_configs", value)


if not MYPY:
    class GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict(TypedDict):
        notification_entity: _builtins.str
        notification_event: _builtins.str
        entity_identifiers: NotRequired[Sequence[_builtins.str]]
        notification_event_data: NotRequired[Mapping[str, _builtins.str]]
elif False:
    GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetCentralNotificationRuleNotificationConditionNotificationEventConfigArgs:
    def __init__(__self__, *,
                 notification_entity: _builtins.str,
                 notification_event: _builtins.str,
                 entity_identifiers: Optional[Sequence[_builtins.str]] = None,
                 notification_event_data: Optional[Mapping[str, _builtins.str]] = None):
        pulumi.set(__self__, "notification_entity", notification_entity)
        pulumi.set(__self__, "notification_event", notification_event)
        if entity_identifiers is not None:
            pulumi.set(__self__, "entity_identifiers", entity_identifiers)
        if notification_event_data is not None:
            pulumi.set(__self__, "notification_event_data", notification_event_data)

    @_builtins.property
    @pulumi.getter(name="notificationEntity")
    def notification_entity(self) -> _builtins.str:
        return pulumi.get(self, "notification_entity")

    @notification_entity.setter
    def notification_entity(self, value: _builtins.str):
        pulumi.set(self, "notification_entity", value)

    @_builtins.property
    @pulumi.getter(name="notificationEvent")
    def notification_event(self) -> _builtins.str:
        return pulumi.get(self, "notification_event")

    @notification_event.setter
    def notification_event(self, value: _builtins.str):
        pulumi.set(self, "notification_event", value)

    @_builtins.property
    @pulumi.getter(name="entityIdentifiers")
    def entity_identifiers(self) -> Optional[Sequence[_builtins.str]]:
        return pulumi.get(self, "entity_identifiers")

    @entity_identifiers.setter
    def entity_identifiers(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "entity_identifiers", value)

    @_builtins.property
    @pulumi.getter(name="notificationEventData")
    def notification_event_data(self) -> Optional[Mapping[str, _builtins.str]]:
        return pulumi.get(self, "notification_event_data")

    @notification_event_data.setter
    def notification_event_data(self, value: Optional[Mapping[str, _builtins.str]]):
        pulumi.set(self, "notification_event_data", value)


if not MYPY:
    class GetConnectorRancherBearerTokenArgsDict(TypedDict):
        password_ref: _builtins.str
        """
        Reference to the secret containing the bearer token for the rancher cluster. 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}.
        """
        rancher_url: _builtins.str
        """
        The URL of the Rancher cluster.
        """
elif False:
    GetConnectorRancherBearerTokenArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetConnectorRancherBearerTokenArgs:
    def __init__(__self__, *,
                 password_ref: _builtins.str,
                 rancher_url: _builtins.str):
        """
        :param _builtins.str password_ref: Reference to the secret containing the bearer token for the rancher cluster. 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}.
        :param _builtins.str rancher_url: The URL of the Rancher cluster.
        """
        pulumi.set(__self__, "password_ref", password_ref)
        pulumi.set(__self__, "rancher_url", rancher_url)

    @_builtins.property
    @pulumi.getter(name="passwordRef")
    def password_ref(self) -> _builtins.str:
        """
        Reference to the secret containing the bearer token for the rancher cluster. 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}.
        """
        return pulumi.get(self, "password_ref")

    @password_ref.setter
    def password_ref(self, value: _builtins.str):
        pulumi.set(self, "password_ref", value)

    @_builtins.property
    @pulumi.getter(name="rancherUrl")
    def rancher_url(self) -> _builtins.str:
        """
        The URL of the Rancher cluster.
        """
        return pulumi.get(self, "rancher_url")

    @rancher_url.setter
    def rancher_url(self, value: _builtins.str):
        pulumi.set(self, "rancher_url", value)


if not MYPY:
    class GetDefaultNotificationTemplateSetEventTemplateConfigurationSetArgsDict(TypedDict):
        notification_events: Sequence[_builtins.str]
        """
        List of notification events like PIPELINE_START
        """
        template: 'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgsDict'
        """
        Template reference configuration
        """
elif False:
    GetDefaultNotificationTemplateSetEventTemplateConfigurationSetArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetDefaultNotificationTemplateSetEventTemplateConfigurationSetArgs:
    def __init__(__self__, *,
                 notification_events: Sequence[_builtins.str],
                 template: 'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs'):
        """
        :param Sequence[_builtins.str] notification_events: List of notification events like PIPELINE_START
        :param 'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs' template: Template reference configuration
        """
        pulumi.set(__self__, "notification_events", notification_events)
        pulumi.set(__self__, "template", template)

    @_builtins.property
    @pulumi.getter(name="notificationEvents")
    def notification_events(self) -> Sequence[_builtins.str]:
        """
        List of notification events like PIPELINE_START
        """
        return pulumi.get(self, "notification_events")

    @notification_events.setter
    def notification_events(self, value: Sequence[_builtins.str]):
        pulumi.set(self, "notification_events", value)

    @_builtins.property
    @pulumi.getter
    def template(self) -> 'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs':
        """
        Template reference configuration
        """
        return pulumi.get(self, "template")

    @template.setter
    def template(self, value: 'GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs'):
        pulumi.set(self, "template", value)


if not MYPY:
    class GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgsDict(TypedDict):
        template_ref: _builtins.str
        version_label: _builtins.str
        variables: NotRequired[Sequence['GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgsDict']]
        """
        List of variables passed to the template
        """
elif False:
    GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateArgs:
    def __init__(__self__, *,
                 template_ref: _builtins.str,
                 version_label: _builtins.str,
                 variables: Optional[Sequence['GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs']] = None):
        """
        :param Sequence['GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs'] variables: List of variables passed to the template
        """
        pulumi.set(__self__, "template_ref", template_ref)
        pulumi.set(__self__, "version_label", version_label)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @_builtins.property
    @pulumi.getter(name="templateRef")
    def template_ref(self) -> _builtins.str:
        return pulumi.get(self, "template_ref")

    @template_ref.setter
    def template_ref(self, value: _builtins.str):
        pulumi.set(self, "template_ref", value)

    @_builtins.property
    @pulumi.getter(name="versionLabel")
    def version_label(self) -> _builtins.str:
        return pulumi.get(self, "version_label")

    @version_label.setter
    def version_label(self, value: _builtins.str):
        pulumi.set(self, "version_label", value)

    @_builtins.property
    @pulumi.getter
    def variables(self) -> Optional[Sequence['GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs']]:
        """
        List of variables passed to the template
        """
        return pulumi.get(self, "variables")

    @variables.setter
    def variables(self, value: Optional[Sequence['GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs']]):
        pulumi.set(self, "variables", value)


if not MYPY:
    class GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgsDict(TypedDict):
        name: _builtins.str
        type: _builtins.str
        value: _builtins.str
elif False:
    GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetDefaultNotificationTemplateSetEventTemplateConfigurationSetTemplateVariableArgs:
    def __init__(__self__, *,
                 name: _builtins.str,
                 type: _builtins.str,
                 value: _builtins.str):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> _builtins.str:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: _builtins.str):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> _builtins.str:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: _builtins.str):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)


if not MYPY:
    class GetEnvironmentClustersMappingClusterArgsDict(TypedDict):
        agent_identifier: NotRequired[_builtins.str]
        """
        agent identifier of the cluster (include scope prefix)
        """
        identifier: NotRequired[_builtins.str]
        """
        identifier of the cluster
        """
        name: NotRequired[_builtins.str]
        """
        name of the cluster
        """
        scope: NotRequired[_builtins.str]
        """
        scope at which the cluster exists in harness gitops, one of "ACCOUNT", "ORGANIZATION", "PROJECT". Scope of environment to which clusters are being mapped must be lower or equal to in hierarchy than the scope of the cluster
        """
elif False:
    GetEnvironmentClustersMappingClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetEnvironmentClustersMappingClusterArgs:
    def __init__(__self__, *,
                 agent_identifier: Optional[_builtins.str] = None,
                 identifier: Optional[_builtins.str] = None,
                 name: Optional[_builtins.str] = None,
                 scope: Optional[_builtins.str] = None):
        """
        :param _builtins.str agent_identifier: agent identifier of the cluster (include scope prefix)
        :param _builtins.str identifier: identifier of the cluster
        :param _builtins.str name: name of the cluster
        :param _builtins.str scope: scope at which the cluster exists in harness gitops, one of "ACCOUNT", "ORGANIZATION", "PROJECT". Scope of environment to which clusters are being mapped must be lower or equal to in hierarchy than the scope of the cluster
        """
        if agent_identifier is not None:
            pulumi.set(__self__, "agent_identifier", agent_identifier)
        if identifier is not None:
            pulumi.set(__self__, "identifier", identifier)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if scope is not None:
            pulumi.set(__self__, "scope", scope)

    @_builtins.property
    @pulumi.getter(name="agentIdentifier")
    def agent_identifier(self) -> Optional[_builtins.str]:
        """
        agent identifier of the cluster (include scope prefix)
        """
        return pulumi.get(self, "agent_identifier")

    @agent_identifier.setter
    def agent_identifier(self, value: Optional[_builtins.str]):
        pulumi.set(self, "agent_identifier", value)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> Optional[_builtins.str]:
        """
        identifier of the cluster
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: Optional[_builtins.str]):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[_builtins.str]:
        """
        name of the cluster
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def scope(self) -> Optional[_builtins.str]:
        """
        scope at which the cluster exists in harness gitops, one of "ACCOUNT", "ORGANIZATION", "PROJECT". Scope of environment to which clusters are being mapped must be lower or equal to in hierarchy than the scope of the cluster
        """
        return pulumi.get(self, "scope")

    @scope.setter
    def scope(self, value: Optional[_builtins.str]):
        pulumi.set(self, "scope", value)


if not MYPY:
    class GetEnvironmentGitDetailsArgsDict(TypedDict):
        branch: _builtins.str
        """
        Name of the branch.
        """
        load_from_fallback_branch: _builtins.bool
        """
        Load environment yaml from fallback branch
        """
        repo_name: _builtins.str
        """
        Repo name of remote environment
        """
elif False:
    GetEnvironmentGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetEnvironmentGitDetailsArgs:
    def __init__(__self__, *,
                 branch: _builtins.str,
                 load_from_fallback_branch: _builtins.bool,
                 repo_name: _builtins.str):
        """
        :param _builtins.str branch: Name of the branch.
        :param _builtins.bool load_from_fallback_branch: Load environment yaml from fallback branch
        :param _builtins.str repo_name: Repo name of remote environment
        """
        pulumi.set(__self__, "branch", branch)
        pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        pulumi.set(__self__, "repo_name", repo_name)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> _builtins.str:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: _builtins.str):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> _builtins.bool:
        """
        Load environment yaml from fallback branch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: _builtins.bool):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> _builtins.str:
        """
        Repo name of remote environment
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: _builtins.str):
        pulumi.set(self, "repo_name", value)


if not MYPY:
    class GetGitopsAgentDeployYamlArgocdSettingsArgsDict(TypedDict):
        enable_helm_path_traversal: NotRequired[_builtins.bool]
        """
        Controls the Environment variable HELM*SECRETS*VALUES*ALLOW*PATH_TRAVERSAL to allow or deny dot-dot-slash values file paths. Disabled by default for security reasons. This config is pushed as an env variable to the repo-server.
        """
elif False:
    GetGitopsAgentDeployYamlArgocdSettingsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetGitopsAgentDeployYamlArgocdSettingsArgs:
    def __init__(__self__, *,
                 enable_helm_path_traversal: Optional[_builtins.bool] = None):
        """
        :param _builtins.bool enable_helm_path_traversal: Controls the Environment variable HELM*SECRETS*VALUES*ALLOW*PATH_TRAVERSAL to allow or deny dot-dot-slash values file paths. Disabled by default for security reasons. This config is pushed as an env variable to the repo-server.
        """
        if enable_helm_path_traversal is not None:
            pulumi.set(__self__, "enable_helm_path_traversal", enable_helm_path_traversal)

    @_builtins.property
    @pulumi.getter(name="enableHelmPathTraversal")
    def enable_helm_path_traversal(self) -> Optional[_builtins.bool]:
        """
        Controls the Environment variable HELM*SECRETS*VALUES*ALLOW*PATH_TRAVERSAL to allow or deny dot-dot-slash values file paths. Disabled by default for security reasons. This config is pushed as an env variable to the repo-server.
        """
        return pulumi.get(self, "enable_helm_path_traversal")

    @enable_helm_path_traversal.setter
    def enable_helm_path_traversal(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "enable_helm_path_traversal", value)


if not MYPY:
    class GetGitopsAgentDeployYamlProxyArgsDict(TypedDict):
        http: NotRequired[_builtins.str]
        """
        HTTP proxy settings for the GitOps agent.
        """
        https: NotRequired[_builtins.str]
        """
        HTTPS proxy settings for the GitOps agent.
        """
        password: NotRequired[_builtins.str]
        """
        Password for the proxy.
        """
        username: NotRequired[_builtins.str]
        """
        Username for the proxy.
        """
elif False:
    GetGitopsAgentDeployYamlProxyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetGitopsAgentDeployYamlProxyArgs:
    def __init__(__self__, *,
                 http: Optional[_builtins.str] = None,
                 https: Optional[_builtins.str] = None,
                 password: Optional[_builtins.str] = None,
                 username: Optional[_builtins.str] = None):
        """
        :param _builtins.str http: HTTP proxy settings for the GitOps agent.
        :param _builtins.str https: HTTPS proxy settings for the GitOps agent.
        :param _builtins.str password: Password for the proxy.
        :param _builtins.str username: Username for the proxy.
        """
        if http is not None:
            pulumi.set(__self__, "http", http)
        if https is not None:
            pulumi.set(__self__, "https", https)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter
    def http(self) -> Optional[_builtins.str]:
        """
        HTTP proxy settings for the GitOps agent.
        """
        return pulumi.get(self, "http")

    @http.setter
    def http(self, value: Optional[_builtins.str]):
        pulumi.set(self, "http", value)

    @_builtins.property
    @pulumi.getter
    def https(self) -> Optional[_builtins.str]:
        """
        HTTPS proxy settings for the GitOps agent.
        """
        return pulumi.get(self, "https")

    @https.setter
    def https(self, value: Optional[_builtins.str]):
        pulumi.set(self, "https", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[_builtins.str]:
        """
        Password for the proxy.
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[_builtins.str]):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[_builtins.str]:
        """
        Username for the proxy.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[_builtins.str]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GetGitopsAgentOperatorYamlProxyArgsDict(TypedDict):
        http: NotRequired[_builtins.str]
        """
        HTTP proxy settings for the GitOps agent.
        """
        https: NotRequired[_builtins.str]
        """
        HTTPS proxy settings for the GitOps agent.
        """
        password: NotRequired[_builtins.str]
        """
        Password for the proxy.
        """
        username: NotRequired[_builtins.str]
        """
        Username for the proxy.
        """
elif False:
    GetGitopsAgentOperatorYamlProxyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetGitopsAgentOperatorYamlProxyArgs:
    def __init__(__self__, *,
                 http: Optional[_builtins.str] = None,
                 https: Optional[_builtins.str] = None,
                 password: Optional[_builtins.str] = None,
                 username: Optional[_builtins.str] = None):
        """
        :param _builtins.str http: HTTP proxy settings for the GitOps agent.
        :param _builtins.str https: HTTPS proxy settings for the GitOps agent.
        :param _builtins.str password: Password for the proxy.
        :param _builtins.str username: Username for the proxy.
        """
        if http is not None:
            pulumi.set(__self__, "http", http)
        if https is not None:
            pulumi.set(__self__, "https", https)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter
    def http(self) -> Optional[_builtins.str]:
        """
        HTTP proxy settings for the GitOps agent.
        """
        return pulumi.get(self, "http")

    @http.setter
    def http(self, value: Optional[_builtins.str]):
        pulumi.set(self, "http", value)

    @_builtins.property
    @pulumi.getter
    def https(self) -> Optional[_builtins.str]:
        """
        HTTPS proxy settings for the GitOps agent.
        """
        return pulumi.get(self, "https")

    @https.setter
    def https(self, value: Optional[_builtins.str]):
        pulumi.set(self, "https", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[_builtins.str]:
        """
        Password for the proxy.
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[_builtins.str]):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[_builtins.str]:
        """
        Username for the proxy.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[_builtins.str]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GetGitopsGnupgRequestArgsDict(TypedDict):
        publickeys: NotRequired[Sequence['GetGitopsGnupgRequestPublickeyArgsDict']]
        """
        Public key details.
        """
        upsert: NotRequired[_builtins.bool]
        """
        Indicates if the GnuPG Key should be inserted if not present or updated if present.
        """
elif False:
    GetGitopsGnupgRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetGitopsGnupgRequestArgs:
    def __init__(__self__, *,
                 publickeys: Optional[Sequence['GetGitopsGnupgRequestPublickeyArgs']] = None,
                 upsert: Optional[_builtins.bool] = None):
        """
        :param Sequence['GetGitopsGnupgRequestPublickeyArgs'] publickeys: Public key details.
        :param _builtins.bool upsert: Indicates if the GnuPG Key should be inserted if not present or updated if present.
        """
        if publickeys is not None:
            pulumi.set(__self__, "publickeys", publickeys)
        if upsert is not None:
            pulumi.set(__self__, "upsert", upsert)

    @_builtins.property
    @pulumi.getter
    def publickeys(self) -> Optional[Sequence['GetGitopsGnupgRequestPublickeyArgs']]:
        """
        Public key details.
        """
        return pulumi.get(self, "publickeys")

    @publickeys.setter
    def publickeys(self, value: Optional[Sequence['GetGitopsGnupgRequestPublickeyArgs']]):
        pulumi.set(self, "publickeys", value)

    @_builtins.property
    @pulumi.getter
    def upsert(self) -> Optional[_builtins.bool]:
        """
        Indicates if the GnuPG Key should be inserted if not present or updated if present.
        """
        return pulumi.get(self, "upsert")

    @upsert.setter
    def upsert(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "upsert", value)


if not MYPY:
    class GetGitopsGnupgRequestPublickeyArgsDict(TypedDict):
        fingerprint: NotRequired[_builtins.str]
        """
        Fingerprint is the fingerprint of the key
        """
        key_data: NotRequired[_builtins.str]
        """
        KeyData holds the raw key data, in base64 encoded format.
        """
        key_id: NotRequired[_builtins.str]
        """
        KeyID specifies the key ID, in hexadecimal string format.
        """
        owner: NotRequired[_builtins.str]
        """
        Owner holds the owner identification, e.g. a name and e-mail address
        """
        sub_type: NotRequired[_builtins.str]
        """
        SubType holds the key's sub type
        """
        trust: NotRequired[_builtins.str]
        """
        Trust holds the level of trust assigned to this key
        """
elif False:
    GetGitopsGnupgRequestPublickeyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetGitopsGnupgRequestPublickeyArgs:
    def __init__(__self__, *,
                 fingerprint: Optional[_builtins.str] = None,
                 key_data: Optional[_builtins.str] = None,
                 key_id: Optional[_builtins.str] = None,
                 owner: Optional[_builtins.str] = None,
                 sub_type: Optional[_builtins.str] = None,
                 trust: Optional[_builtins.str] = None):
        """
        :param _builtins.str fingerprint: Fingerprint is the fingerprint of the key
        :param _builtins.str key_data: KeyData holds the raw key data, in base64 encoded format.
        :param _builtins.str key_id: KeyID specifies the key ID, in hexadecimal string format.
        :param _builtins.str owner: Owner holds the owner identification, e.g. a name and e-mail address
        :param _builtins.str sub_type: SubType holds the key's sub type
        :param _builtins.str trust: Trust holds the level of trust assigned to this key
        """
        if fingerprint is not None:
            pulumi.set(__self__, "fingerprint", fingerprint)
        if key_data is not None:
            pulumi.set(__self__, "key_data", key_data)
        if key_id is not None:
            pulumi.set(__self__, "key_id", key_id)
        if owner is not None:
            pulumi.set(__self__, "owner", owner)
        if sub_type is not None:
            pulumi.set(__self__, "sub_type", sub_type)
        if trust is not None:
            pulumi.set(__self__, "trust", trust)

    @_builtins.property
    @pulumi.getter
    def fingerprint(self) -> Optional[_builtins.str]:
        """
        Fingerprint is the fingerprint of the key
        """
        return pulumi.get(self, "fingerprint")

    @fingerprint.setter
    def fingerprint(self, value: Optional[_builtins.str]):
        pulumi.set(self, "fingerprint", value)

    @_builtins.property
    @pulumi.getter(name="keyData")
    def key_data(self) -> Optional[_builtins.str]:
        """
        KeyData holds the raw key data, in base64 encoded format.
        """
        return pulumi.get(self, "key_data")

    @key_data.setter
    def key_data(self, value: Optional[_builtins.str]):
        pulumi.set(self, "key_data", value)

    @_builtins.property
    @pulumi.getter(name="keyId")
    def key_id(self) -> Optional[_builtins.str]:
        """
        KeyID specifies the key ID, in hexadecimal string format.
        """
        return pulumi.get(self, "key_id")

    @key_id.setter
    def key_id(self, value: Optional[_builtins.str]):
        pulumi.set(self, "key_id", value)

    @_builtins.property
    @pulumi.getter
    def owner(self) -> Optional[_builtins.str]:
        """
        Owner holds the owner identification, e.g. a name and e-mail address
        """
        return pulumi.get(self, "owner")

    @owner.setter
    def owner(self, value: Optional[_builtins.str]):
        pulumi.set(self, "owner", value)

    @_builtins.property
    @pulumi.getter(name="subType")
    def sub_type(self) -> Optional[_builtins.str]:
        """
        SubType holds the key's sub type
        """
        return pulumi.get(self, "sub_type")

    @sub_type.setter
    def sub_type(self, value: Optional[_builtins.str]):
        pulumi.set(self, "sub_type", value)

    @_builtins.property
    @pulumi.getter
    def trust(self) -> Optional[_builtins.str]:
        """
        Trust holds the level of trust assigned to this key
        """
        return pulumi.get(self, "trust")

    @trust.setter
    def trust(self, value: Optional[_builtins.str]):
        pulumi.set(self, "trust", value)


if not MYPY:
    class GetGitopsRepoCredCredArgsDict(TypedDict):
        enable_oci: _builtins.bool
        """
        Specifies whether helm-oci support should be enabled for this repo.
        """
        github_app_enterprise_base_url: _builtins.str
        """
        Specifies the GitHub API URL for GitHub app authentication.
        """
        github_app_id: _builtins.str
        """
        Specifies the Github App ID of the app used to access the repo for GitHub app authentication.
        """
        github_app_installation_id: _builtins.str
        """
        Specifies the ID of the installed GitHub App for GitHub app authentication.
        """
        github_app_private_key: _builtins.str
        """
        github*app*private_key specifies the private key PEM data for authentication via GitHub app.
        """
        password: _builtins.str
        """
        Password or PAT to be used for authenticating the remote repository.
        """
        ssh_private_key: _builtins.str
        """
        SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        """
        tls_client_cert_data: _builtins.str
        """
        Certificate in PEM format for authenticating at the repo server. This is used for mTLS.
        """
        tls_client_cert_key: _builtins.str
        """
        Private key in PEM format for authenticating at the repo server. This is used for mTLS.
        """
        type: _builtins.str
        """
        Type specifies the type of the repoCreds.Can be either 'git' or 'helm. 'git' is assumed if empty or absent
        """
        url: _builtins.str
        """
        URL of the remote repository. Make sure you pass at least an org, this will not work if you just provide the host, for eg. "https://github.com"
        """
        username: _builtins.str
        """
        Username to be used for authenticating the remote repository.
        """
elif False:
    GetGitopsRepoCredCredArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetGitopsRepoCredCredArgs:
    def __init__(__self__, *,
                 enable_oci: _builtins.bool,
                 github_app_enterprise_base_url: _builtins.str,
                 github_app_id: _builtins.str,
                 github_app_installation_id: _builtins.str,
                 github_app_private_key: _builtins.str,
                 password: _builtins.str,
                 ssh_private_key: _builtins.str,
                 tls_client_cert_data: _builtins.str,
                 tls_client_cert_key: _builtins.str,
                 type: _builtins.str,
                 url: _builtins.str,
                 username: _builtins.str):
        """
        :param _builtins.bool enable_oci: Specifies whether helm-oci support should be enabled for this repo.
        :param _builtins.str github_app_enterprise_base_url: Specifies the GitHub API URL for GitHub app authentication.
        :param _builtins.str github_app_id: Specifies the Github App ID of the app used to access the repo for GitHub app authentication.
        :param _builtins.str github_app_installation_id: Specifies the ID of the installed GitHub App for GitHub app authentication.
        :param _builtins.str github_app_private_key: github*app*private_key specifies the private key PEM data for authentication via GitHub app.
        :param _builtins.str password: Password or PAT to be used for authenticating the remote repository.
        :param _builtins.str ssh_private_key: SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        :param _builtins.str tls_client_cert_data: Certificate in PEM format for authenticating at the repo server. This is used for mTLS.
        :param _builtins.str tls_client_cert_key: Private key in PEM format for authenticating at the repo server. This is used for mTLS.
        :param _builtins.str type: Type specifies the type of the repoCreds.Can be either 'git' or 'helm. 'git' is assumed if empty or absent
        :param _builtins.str url: URL of the remote repository. Make sure you pass at least an org, this will not work if you just provide the host, for eg. "https://github.com"
        :param _builtins.str username: Username to be used for authenticating the remote repository.
        """
        pulumi.set(__self__, "enable_oci", enable_oci)
        pulumi.set(__self__, "github_app_enterprise_base_url", github_app_enterprise_base_url)
        pulumi.set(__self__, "github_app_id", github_app_id)
        pulumi.set(__self__, "github_app_installation_id", github_app_installation_id)
        pulumi.set(__self__, "github_app_private_key", github_app_private_key)
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "ssh_private_key", ssh_private_key)
        pulumi.set(__self__, "tls_client_cert_data", tls_client_cert_data)
        pulumi.set(__self__, "tls_client_cert_key", tls_client_cert_key)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "url", url)
        pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter(name="enableOci")
    def enable_oci(self) -> _builtins.bool:
        """
        Specifies whether helm-oci support should be enabled for this repo.
        """
        return pulumi.get(self, "enable_oci")

    @enable_oci.setter
    def enable_oci(self, value: _builtins.bool):
        pulumi.set(self, "enable_oci", value)

    @_builtins.property
    @pulumi.getter(name="githubAppEnterpriseBaseUrl")
    def github_app_enterprise_base_url(self) -> _builtins.str:
        """
        Specifies the GitHub API URL for GitHub app authentication.
        """
        return pulumi.get(self, "github_app_enterprise_base_url")

    @github_app_enterprise_base_url.setter
    def github_app_enterprise_base_url(self, value: _builtins.str):
        pulumi.set(self, "github_app_enterprise_base_url", value)

    @_builtins.property
    @pulumi.getter(name="githubAppId")
    def github_app_id(self) -> _builtins.str:
        """
        Specifies the Github App ID of the app used to access the repo for GitHub app authentication.
        """
        return pulumi.get(self, "github_app_id")

    @github_app_id.setter
    def github_app_id(self, value: _builtins.str):
        pulumi.set(self, "github_app_id", value)

    @_builtins.property
    @pulumi.getter(name="githubAppInstallationId")
    def github_app_installation_id(self) -> _builtins.str:
        """
        Specifies the ID of the installed GitHub App for GitHub app authentication.
        """
        return pulumi.get(self, "github_app_installation_id")

    @github_app_installation_id.setter
    def github_app_installation_id(self, value: _builtins.str):
        pulumi.set(self, "github_app_installation_id", value)

    @_builtins.property
    @pulumi.getter(name="githubAppPrivateKey")
    def github_app_private_key(self) -> _builtins.str:
        """
        github*app*private_key specifies the private key PEM data for authentication via GitHub app.
        """
        return pulumi.get(self, "github_app_private_key")

    @github_app_private_key.setter
    def github_app_private_key(self, value: _builtins.str):
        pulumi.set(self, "github_app_private_key", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> _builtins.str:
        """
        Password or PAT to be used for authenticating the remote repository.
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: _builtins.str):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter(name="sshPrivateKey")
    def ssh_private_key(self) -> _builtins.str:
        """
        SSH Key in PEM format for authenticating the repository. Used only for Git repository.
        """
        return pulumi.get(self, "ssh_private_key")

    @ssh_private_key.setter
    def ssh_private_key(self, value: _builtins.str):
        pulumi.set(self, "ssh_private_key", value)

    @_builtins.property
    @pulumi.getter(name="tlsClientCertData")
    def tls_client_cert_data(self) -> _builtins.str:
        """
        Certificate in PEM format for authenticating at the repo server. This is used for mTLS.
        """
        return pulumi.get(self, "tls_client_cert_data")

    @tls_client_cert_data.setter
    def tls_client_cert_data(self, value: _builtins.str):
        pulumi.set(self, "tls_client_cert_data", value)

    @_builtins.property
    @pulumi.getter(name="tlsClientCertKey")
    def tls_client_cert_key(self) -> _builtins.str:
        """
        Private key in PEM format for authenticating at the repo server. This is used for mTLS.
        """
        return pulumi.get(self, "tls_client_cert_key")

    @tls_client_cert_key.setter
    def tls_client_cert_key(self, value: _builtins.str):
        pulumi.set(self, "tls_client_cert_key", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> _builtins.str:
        """
        Type specifies the type of the repoCreds.Can be either 'git' or 'helm. 'git' is assumed if empty or absent
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: _builtins.str):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def url(self) -> _builtins.str:
        """
        URL of the remote repository. Make sure you pass at least an org, this will not work if you just provide the host, for eg. "https://github.com"
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: _builtins.str):
        pulumi.set(self, "url", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> _builtins.str:
        """
        Username to be used for authenticating the remote repository.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: _builtins.str):
        pulumi.set(self, "username", value)


if not MYPY:
    class GetHarRegistryConfigArgsDict(TypedDict):
        type: _builtins.str
        """
        Type of registry (VIRTUAL or UPSTREAM)
        """
        auth_type: NotRequired[_builtins.str]
        """
        Type of authentication for UPSTREAM registry type (UserPassword, Anonymous)
        """
        auths: NotRequired[Sequence['GetHarRegistryConfigAuthArgsDict']]
        """
        Authentication configuration for UPSTREAM registry type
        """
        source: NotRequired[_builtins.str]
        """
        Upstream source
        """
        upstream_proxies: NotRequired[Sequence[_builtins.str]]
        """
        List of upstream proxies for VIRTUAL registry type
        """
        url: NotRequired[_builtins.str]
        """
        URL of the upstream (required if type=UPSTREAM & package_type=HELM)
        """
elif False:
    GetHarRegistryConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetHarRegistryConfigArgs:
    def __init__(__self__, *,
                 type: _builtins.str,
                 auth_type: Optional[_builtins.str] = None,
                 auths: Optional[Sequence['GetHarRegistryConfigAuthArgs']] = None,
                 source: Optional[_builtins.str] = None,
                 upstream_proxies: Optional[Sequence[_builtins.str]] = None,
                 url: Optional[_builtins.str] = None):
        """
        :param _builtins.str type: Type of registry (VIRTUAL or UPSTREAM)
        :param _builtins.str auth_type: Type of authentication for UPSTREAM registry type (UserPassword, Anonymous)
        :param Sequence['GetHarRegistryConfigAuthArgs'] auths: Authentication configuration for UPSTREAM registry type
        :param _builtins.str source: Upstream source
        :param Sequence[_builtins.str] upstream_proxies: List of upstream proxies for VIRTUAL registry type
        :param _builtins.str url: URL of the upstream (required if type=UPSTREAM & package_type=HELM)
        """
        pulumi.set(__self__, "type", type)
        if auth_type is not None:
            pulumi.set(__self__, "auth_type", auth_type)
        if auths is not None:
            pulumi.set(__self__, "auths", auths)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if upstream_proxies is not None:
            pulumi.set(__self__, "upstream_proxies", upstream_proxies)
        if url is not None:
            pulumi.set(__self__, "url", url)

    @_builtins.property
    @pulumi.getter
    def type(self) -> _builtins.str:
        """
        Type of registry (VIRTUAL or UPSTREAM)
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: _builtins.str):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter(name="authType")
    def auth_type(self) -> Optional[_builtins.str]:
        """
        Type of authentication for UPSTREAM registry type (UserPassword, Anonymous)
        """
        return pulumi.get(self, "auth_type")

    @auth_type.setter
    def auth_type(self, value: Optional[_builtins.str]):
        pulumi.set(self, "auth_type", value)

    @_builtins.property
    @pulumi.getter
    def auths(self) -> Optional[Sequence['GetHarRegistryConfigAuthArgs']]:
        """
        Authentication configuration for UPSTREAM registry type
        """
        return pulumi.get(self, "auths")

    @auths.setter
    def auths(self, value: Optional[Sequence['GetHarRegistryConfigAuthArgs']]):
        pulumi.set(self, "auths", value)

    @_builtins.property
    @pulumi.getter
    def source(self) -> Optional[_builtins.str]:
        """
        Upstream source
        """
        return pulumi.get(self, "source")

    @source.setter
    def source(self, value: Optional[_builtins.str]):
        pulumi.set(self, "source", value)

    @_builtins.property
    @pulumi.getter(name="upstreamProxies")
    def upstream_proxies(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of upstream proxies for VIRTUAL registry type
        """
        return pulumi.get(self, "upstream_proxies")

    @upstream_proxies.setter
    def upstream_proxies(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "upstream_proxies", value)

    @_builtins.property
    @pulumi.getter
    def url(self) -> Optional[_builtins.str]:
        """
        URL of the upstream (required if type=UPSTREAM & package_type=HELM)
        """
        return pulumi.get(self, "url")

    @url.setter
    def url(self, value: Optional[_builtins.str]):
        pulumi.set(self, "url", value)


if not MYPY:
    class GetHarRegistryConfigAuthArgsDict(TypedDict):
        auth_type: _builtins.str
        """
        Type of authentication (UserPassword, Anonymous)
        """
        access_key: NotRequired[_builtins.str]
        access_key_identifier: NotRequired[_builtins.str]
        access_key_secret_path: NotRequired[_builtins.str]
        secret_identifier: NotRequired[_builtins.str]
        """
        Secret identifier for UserPassword auth type
        """
        secret_key_identifier: NotRequired[_builtins.str]
        secret_key_secret_path: NotRequired[_builtins.str]
        secret_space_path: NotRequired[_builtins.str]
        """
        Secret space path for UserPassword auth type
        """
        user_name: NotRequired[_builtins.str]
        """
        User name for UserPassword auth type
        """
elif False:
    GetHarRegistryConfigAuthArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetHarRegistryConfigAuthArgs:
    def __init__(__self__, *,
                 auth_type: _builtins.str,
                 access_key: Optional[_builtins.str] = None,
                 access_key_identifier: Optional[_builtins.str] = None,
                 access_key_secret_path: Optional[_builtins.str] = None,
                 secret_identifier: Optional[_builtins.str] = None,
                 secret_key_identifier: Optional[_builtins.str] = None,
                 secret_key_secret_path: Optional[_builtins.str] = None,
                 secret_space_path: Optional[_builtins.str] = None,
                 user_name: Optional[_builtins.str] = None):
        """
        :param _builtins.str auth_type: Type of authentication (UserPassword, Anonymous)
        :param _builtins.str secret_identifier: Secret identifier for UserPassword auth type
        :param _builtins.str secret_space_path: Secret space path for UserPassword auth type
        :param _builtins.str user_name: User name for UserPassword auth type
        """
        pulumi.set(__self__, "auth_type", auth_type)
        if access_key is not None:
            pulumi.set(__self__, "access_key", access_key)
        if access_key_identifier is not None:
            pulumi.set(__self__, "access_key_identifier", access_key_identifier)
        if access_key_secret_path is not None:
            pulumi.set(__self__, "access_key_secret_path", access_key_secret_path)
        if secret_identifier is not None:
            pulumi.set(__self__, "secret_identifier", secret_identifier)
        if secret_key_identifier is not None:
            pulumi.set(__self__, "secret_key_identifier", secret_key_identifier)
        if secret_key_secret_path is not None:
            pulumi.set(__self__, "secret_key_secret_path", secret_key_secret_path)
        if secret_space_path is not None:
            pulumi.set(__self__, "secret_space_path", secret_space_path)
        if user_name is not None:
            pulumi.set(__self__, "user_name", user_name)

    @_builtins.property
    @pulumi.getter(name="authType")
    def auth_type(self) -> _builtins.str:
        """
        Type of authentication (UserPassword, Anonymous)
        """
        return pulumi.get(self, "auth_type")

    @auth_type.setter
    def auth_type(self, value: _builtins.str):
        pulumi.set(self, "auth_type", value)

    @_builtins.property
    @pulumi.getter(name="accessKey")
    def access_key(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "access_key")

    @access_key.setter
    def access_key(self, value: Optional[_builtins.str]):
        pulumi.set(self, "access_key", value)

    @_builtins.property
    @pulumi.getter(name="accessKeyIdentifier")
    def access_key_identifier(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "access_key_identifier")

    @access_key_identifier.setter
    def access_key_identifier(self, value: Optional[_builtins.str]):
        pulumi.set(self, "access_key_identifier", value)

    @_builtins.property
    @pulumi.getter(name="accessKeySecretPath")
    def access_key_secret_path(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "access_key_secret_path")

    @access_key_secret_path.setter
    def access_key_secret_path(self, value: Optional[_builtins.str]):
        pulumi.set(self, "access_key_secret_path", value)

    @_builtins.property
    @pulumi.getter(name="secretIdentifier")
    def secret_identifier(self) -> Optional[_builtins.str]:
        """
        Secret identifier for UserPassword auth type
        """
        return pulumi.get(self, "secret_identifier")

    @secret_identifier.setter
    def secret_identifier(self, value: Optional[_builtins.str]):
        pulumi.set(self, "secret_identifier", value)

    @_builtins.property
    @pulumi.getter(name="secretKeyIdentifier")
    def secret_key_identifier(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "secret_key_identifier")

    @secret_key_identifier.setter
    def secret_key_identifier(self, value: Optional[_builtins.str]):
        pulumi.set(self, "secret_key_identifier", value)

    @_builtins.property
    @pulumi.getter(name="secretKeySecretPath")
    def secret_key_secret_path(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "secret_key_secret_path")

    @secret_key_secret_path.setter
    def secret_key_secret_path(self, value: Optional[_builtins.str]):
        pulumi.set(self, "secret_key_secret_path", value)

    @_builtins.property
    @pulumi.getter(name="secretSpacePath")
    def secret_space_path(self) -> Optional[_builtins.str]:
        """
        Secret space path for UserPassword auth type
        """
        return pulumi.get(self, "secret_space_path")

    @secret_space_path.setter
    def secret_space_path(self, value: Optional[_builtins.str]):
        pulumi.set(self, "secret_space_path", value)

    @_builtins.property
    @pulumi.getter(name="userName")
    def user_name(self) -> Optional[_builtins.str]:
        """
        User name for UserPassword auth type
        """
        return pulumi.get(self, "user_name")

    @user_name.setter
    def user_name(self, value: Optional[_builtins.str]):
        pulumi.set(self, "user_name", value)


if not MYPY:
    class GetInfraModuleTestingMetadataArgsDict(TypedDict):
        account: _builtins.str
        """
        Account is the internal customer account ID
        """
        org: _builtins.str
        """
        Organization identifier
        """
        pipelines: Sequence[_builtins.str]
        """
        Pipelines where the testing is enabled
        """
        project: _builtins.str
        """
        Project identifier
        """
        provider_connector: _builtins.str
        """
        Provider connector for testing purposes
        """
        provisioner_type: _builtins.str
        """
        Provisioner type for testing purposes
        """
        provisioner_version: _builtins.str
        """
        Provisioner version for testing purposes
        """
        release_pipeline: _builtins.str
        """
        Release pipeline
        """
elif False:
    GetInfraModuleTestingMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetInfraModuleTestingMetadataArgs:
    def __init__(__self__, *,
                 account: _builtins.str,
                 org: _builtins.str,
                 pipelines: Sequence[_builtins.str],
                 project: _builtins.str,
                 provider_connector: _builtins.str,
                 provisioner_type: _builtins.str,
                 provisioner_version: _builtins.str,
                 release_pipeline: _builtins.str):
        """
        :param _builtins.str account: Account is the internal customer account ID
        :param _builtins.str org: Organization identifier
        :param Sequence[_builtins.str] pipelines: Pipelines where the testing is enabled
        :param _builtins.str project: Project identifier
        :param _builtins.str provider_connector: Provider connector for testing purposes
        :param _builtins.str provisioner_type: Provisioner type for testing purposes
        :param _builtins.str provisioner_version: Provisioner version for testing purposes
        :param _builtins.str release_pipeline: Release pipeline
        """
        pulumi.set(__self__, "account", account)
        pulumi.set(__self__, "org", org)
        pulumi.set(__self__, "pipelines", pipelines)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "provider_connector", provider_connector)
        pulumi.set(__self__, "provisioner_type", provisioner_type)
        pulumi.set(__self__, "provisioner_version", provisioner_version)
        pulumi.set(__self__, "release_pipeline", release_pipeline)

    @_builtins.property
    @pulumi.getter
    def account(self) -> _builtins.str:
        """
        Account is the internal customer account ID
        """
        return pulumi.get(self, "account")

    @account.setter
    def account(self, value: _builtins.str):
        pulumi.set(self, "account", value)

    @_builtins.property
    @pulumi.getter
    def org(self) -> _builtins.str:
        """
        Organization identifier
        """
        return pulumi.get(self, "org")

    @org.setter
    def org(self, value: _builtins.str):
        pulumi.set(self, "org", value)

    @_builtins.property
    @pulumi.getter
    def pipelines(self) -> Sequence[_builtins.str]:
        """
        Pipelines where the testing is enabled
        """
        return pulumi.get(self, "pipelines")

    @pipelines.setter
    def pipelines(self, value: Sequence[_builtins.str]):
        pulumi.set(self, "pipelines", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> _builtins.str:
        """
        Project identifier
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: _builtins.str):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="providerConnector")
    def provider_connector(self) -> _builtins.str:
        """
        Provider connector for testing purposes
        """
        return pulumi.get(self, "provider_connector")

    @provider_connector.setter
    def provider_connector(self, value: _builtins.str):
        pulumi.set(self, "provider_connector", value)

    @_builtins.property
    @pulumi.getter(name="provisionerType")
    def provisioner_type(self) -> _builtins.str:
        """
        Provisioner type for testing purposes
        """
        return pulumi.get(self, "provisioner_type")

    @provisioner_type.setter
    def provisioner_type(self, value: _builtins.str):
        pulumi.set(self, "provisioner_type", value)

    @_builtins.property
    @pulumi.getter(name="provisionerVersion")
    def provisioner_version(self) -> _builtins.str:
        """
        Provisioner version for testing purposes
        """
        return pulumi.get(self, "provisioner_version")

    @provisioner_version.setter
    def provisioner_version(self, value: _builtins.str):
        pulumi.set(self, "provisioner_version", value)

    @_builtins.property
    @pulumi.getter(name="releasePipeline")
    def release_pipeline(self) -> _builtins.str:
        """
        Release pipeline
        """
        return pulumi.get(self, "release_pipeline")

    @release_pipeline.setter
    def release_pipeline(self, value: _builtins.str):
        pulumi.set(self, "release_pipeline", value)


if not MYPY:
    class GetInfraModuleTestingTestingMetadataArgsDict(TypedDict):
        account: _builtins.str
        """
        Account is the internal customer account ID
        """
        org: _builtins.str
        """
        Organization identifier
        """
        pipelines: Sequence[_builtins.str]
        """
        Pipelines where the testing is enabled
        """
        project: _builtins.str
        """
        Project identifier
        """
        provider_connector: _builtins.str
        """
        Provider connector for testing purposes
        """
        provisioner_type: _builtins.str
        """
        Provisioner type for testing purposes
        """
        provisioner_version: _builtins.str
        """
        Provisioner version for testing purposes
        """
        release_pipeline: _builtins.str
        """
        Release pipeline
        """
elif False:
    GetInfraModuleTestingTestingMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetInfraModuleTestingTestingMetadataArgs:
    def __init__(__self__, *,
                 account: _builtins.str,
                 org: _builtins.str,
                 pipelines: Sequence[_builtins.str],
                 project: _builtins.str,
                 provider_connector: _builtins.str,
                 provisioner_type: _builtins.str,
                 provisioner_version: _builtins.str,
                 release_pipeline: _builtins.str):
        """
        :param _builtins.str account: Account is the internal customer account ID
        :param _builtins.str org: Organization identifier
        :param Sequence[_builtins.str] pipelines: Pipelines where the testing is enabled
        :param _builtins.str project: Project identifier
        :param _builtins.str provider_connector: Provider connector for testing purposes
        :param _builtins.str provisioner_type: Provisioner type for testing purposes
        :param _builtins.str provisioner_version: Provisioner version for testing purposes
        :param _builtins.str release_pipeline: Release pipeline
        """
        pulumi.set(__self__, "account", account)
        pulumi.set(__self__, "org", org)
        pulumi.set(__self__, "pipelines", pipelines)
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "provider_connector", provider_connector)
        pulumi.set(__self__, "provisioner_type", provisioner_type)
        pulumi.set(__self__, "provisioner_version", provisioner_version)
        pulumi.set(__self__, "release_pipeline", release_pipeline)

    @_builtins.property
    @pulumi.getter
    def account(self) -> _builtins.str:
        """
        Account is the internal customer account ID
        """
        return pulumi.get(self, "account")

    @account.setter
    def account(self, value: _builtins.str):
        pulumi.set(self, "account", value)

    @_builtins.property
    @pulumi.getter
    def org(self) -> _builtins.str:
        """
        Organization identifier
        """
        return pulumi.get(self, "org")

    @org.setter
    def org(self, value: _builtins.str):
        pulumi.set(self, "org", value)

    @_builtins.property
    @pulumi.getter
    def pipelines(self) -> Sequence[_builtins.str]:
        """
        Pipelines where the testing is enabled
        """
        return pulumi.get(self, "pipelines")

    @pipelines.setter
    def pipelines(self, value: Sequence[_builtins.str]):
        pulumi.set(self, "pipelines", value)

    @_builtins.property
    @pulumi.getter
    def project(self) -> _builtins.str:
        """
        Project identifier
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: _builtins.str):
        pulumi.set(self, "project", value)

    @_builtins.property
    @pulumi.getter(name="providerConnector")
    def provider_connector(self) -> _builtins.str:
        """
        Provider connector for testing purposes
        """
        return pulumi.get(self, "provider_connector")

    @provider_connector.setter
    def provider_connector(self, value: _builtins.str):
        pulumi.set(self, "provider_connector", value)

    @_builtins.property
    @pulumi.getter(name="provisionerType")
    def provisioner_type(self) -> _builtins.str:
        """
        Provisioner type for testing purposes
        """
        return pulumi.get(self, "provisioner_type")

    @provisioner_type.setter
    def provisioner_type(self, value: _builtins.str):
        pulumi.set(self, "provisioner_type", value)

    @_builtins.property
    @pulumi.getter(name="provisionerVersion")
    def provisioner_version(self) -> _builtins.str:
        """
        Provisioner version for testing purposes
        """
        return pulumi.get(self, "provisioner_version")

    @provisioner_version.setter
    def provisioner_version(self, value: _builtins.str):
        pulumi.set(self, "provisioner_version", value)

    @_builtins.property
    @pulumi.getter(name="releasePipeline")
    def release_pipeline(self) -> _builtins.str:
        """
        Release pipeline
        """
        return pulumi.get(self, "release_pipeline")

    @release_pipeline.setter
    def release_pipeline(self, value: _builtins.str):
        pulumi.set(self, "release_pipeline", value)


if not MYPY:
    class GetInfraVariableSetConnectorArgsDict(TypedDict):
        connector_ref: _builtins.str
        """
        Connector Ref is the reference to the connector
        """
        type: _builtins.str
        """
        Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
elif False:
    GetInfraVariableSetConnectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetInfraVariableSetConnectorArgs:
    def __init__(__self__, *,
                 connector_ref: _builtins.str,
                 type: _builtins.str):
        """
        :param _builtins.str connector_ref: Connector Ref is the reference to the connector
        :param _builtins.str type: Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
        pulumi.set(__self__, "connector_ref", connector_ref)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> _builtins.str:
        """
        Connector Ref is the reference to the connector
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: _builtins.str):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> _builtins.str:
        """
        Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: _builtins.str):
        pulumi.set(self, "type", value)


if not MYPY:
    class GetInfraVariableSetEnvironmentVariableArgsDict(TypedDict):
        key: _builtins.str
        """
        Key is the identifier for the variable. Must be unique within the Variable Set.
        """
        value: _builtins.str
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        value_type: _builtins.str
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
elif False:
    GetInfraVariableSetEnvironmentVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetInfraVariableSetEnvironmentVariableArgs:
    def __init__(__self__, *,
                 key: _builtins.str,
                 value: _builtins.str,
                 value_type: _builtins.str):
        """
        :param _builtins.str key: Key is the identifier for the variable. Must be unique within the Variable Set.
        :param _builtins.str value: Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        :param _builtins.str value_type: Value type indicates the value type of the variable. Currently we support string and secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter
    def key(self) -> _builtins.str:
        """
        Key is the identifier for the variable. Must be unique within the Variable Set.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: _builtins.str):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> _builtins.str:
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: _builtins.str):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class GetInfraVariableSetTerraformVariableArgsDict(TypedDict):
        key: _builtins.str
        """
        Key is the identifier for the variable. Must be unique within the Variable Set.
        """
        value: _builtins.str
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        value_type: _builtins.str
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
elif False:
    GetInfraVariableSetTerraformVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetInfraVariableSetTerraformVariableArgs:
    def __init__(__self__, *,
                 key: _builtins.str,
                 value: _builtins.str,
                 value_type: _builtins.str):
        """
        :param _builtins.str key: Key is the identifier for the variable. Must be unique within the Variable Set.
        :param _builtins.str value: Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        :param _builtins.str value_type: Value type indicates the value type of the variable. Currently we support string and secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter
    def key(self) -> _builtins.str:
        """
        Key is the identifier for the variable. Must be unique within the Variable Set.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: _builtins.str):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        """
        Value is the value of the variable. For string value types this field should contain the value of the variable. For secret value types this should contain a reference to a valid harness secret.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> _builtins.str:
        """
        Value type indicates the value type of the variable. Currently we support string and secret.
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: _builtins.str):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class GetInfraVariableSetTerraformVariableFileArgsDict(TypedDict):
        repository: _builtins.str
        """
        Repository is the name of the repository to fetch the code from.
        """
        repository_connector: _builtins.str
        """
        Repository connector is the reference to the connector used to fetch the variables.
        """
        repository_branch: NotRequired[_builtins.str]
        """
        Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        """
        repository_commit: NotRequired[_builtins.str]
        """
        Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        """
        repository_path: NotRequired[_builtins.str]
        """
        Repository path is the path in which the variables reside.
        """
        repository_sha: NotRequired[_builtins.str]
        """
        Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
elif False:
    GetInfraVariableSetTerraformVariableFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetInfraVariableSetTerraformVariableFileArgs:
    def __init__(__self__, *,
                 repository: _builtins.str,
                 repository_connector: _builtins.str,
                 repository_branch: Optional[_builtins.str] = None,
                 repository_commit: Optional[_builtins.str] = None,
                 repository_path: Optional[_builtins.str] = None,
                 repository_sha: Optional[_builtins.str] = None):
        """
        :param _builtins.str repository: Repository is the name of the repository to fetch the code from.
        :param _builtins.str repository_connector: Repository connector is the reference to the connector used to fetch the variables.
        :param _builtins.str repository_branch: Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        :param _builtins.str repository_commit: Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        :param _builtins.str repository_path: Repository path is the path in which the variables reside.
        :param _builtins.str repository_sha: Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
        pulumi.set(__self__, "repository", repository)
        pulumi.set(__self__, "repository_connector", repository_connector)
        if repository_branch is not None:
            pulumi.set(__self__, "repository_branch", repository_branch)
        if repository_commit is not None:
            pulumi.set(__self__, "repository_commit", repository_commit)
        if repository_path is not None:
            pulumi.set(__self__, "repository_path", repository_path)
        if repository_sha is not None:
            pulumi.set(__self__, "repository_sha", repository_sha)

    @_builtins.property
    @pulumi.getter
    def repository(self) -> _builtins.str:
        """
        Repository is the name of the repository to fetch the code from.
        """
        return pulumi.get(self, "repository")

    @repository.setter
    def repository(self, value: _builtins.str):
        pulumi.set(self, "repository", value)

    @_builtins.property
    @pulumi.getter(name="repositoryConnector")
    def repository_connector(self) -> _builtins.str:
        """
        Repository connector is the reference to the connector used to fetch the variables.
        """
        return pulumi.get(self, "repository_connector")

    @repository_connector.setter
    def repository_connector(self, value: _builtins.str):
        pulumi.set(self, "repository_connector", value)

    @_builtins.property
    @pulumi.getter(name="repositoryBranch")
    def repository_branch(self) -> Optional[_builtins.str]:
        """
        Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        """
        return pulumi.get(self, "repository_branch")

    @repository_branch.setter
    def repository_branch(self, value: Optional[_builtins.str]):
        pulumi.set(self, "repository_branch", value)

    @_builtins.property
    @pulumi.getter(name="repositoryCommit")
    def repository_commit(self) -> Optional[_builtins.str]:
        """
        Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        """
        return pulumi.get(self, "repository_commit")

    @repository_commit.setter
    def repository_commit(self, value: Optional[_builtins.str]):
        pulumi.set(self, "repository_commit", value)

    @_builtins.property
    @pulumi.getter(name="repositoryPath")
    def repository_path(self) -> Optional[_builtins.str]:
        """
        Repository path is the path in which the variables reside.
        """
        return pulumi.get(self, "repository_path")

    @repository_path.setter
    def repository_path(self, value: Optional[_builtins.str]):
        pulumi.set(self, "repository_path", value)

    @_builtins.property
    @pulumi.getter(name="repositorySha")
    def repository_sha(self) -> Optional[_builtins.str]:
        """
        Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
        return pulumi.get(self, "repository_sha")

    @repository_sha.setter
    def repository_sha(self, value: Optional[_builtins.str]):
        pulumi.set(self, "repository_sha", value)


if not MYPY:
    class GetInfrastructureGitDetailsArgsDict(TypedDict):
        branch: _builtins.str
        """
        Name of the branch.
        """
        load_from_cache: _builtins.str
        """
        If the Entity is to be fetched from cache
        """
        load_from_fallback_branch: _builtins.bool
        """
        Load Infrastructure yaml from fallback branch
        """
        repo_name: _builtins.str
        """
        Repo name of remote Infrastructure
        """
elif False:
    GetInfrastructureGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetInfrastructureGitDetailsArgs:
    def __init__(__self__, *,
                 branch: _builtins.str,
                 load_from_cache: _builtins.str,
                 load_from_fallback_branch: _builtins.bool,
                 repo_name: _builtins.str):
        """
        :param _builtins.str branch: Name of the branch.
        :param _builtins.str load_from_cache: If the Entity is to be fetched from cache
        :param _builtins.bool load_from_fallback_branch: Load Infrastructure yaml from fallback branch
        :param _builtins.str repo_name: Repo name of remote Infrastructure
        """
        pulumi.set(__self__, "branch", branch)
        pulumi.set(__self__, "load_from_cache", load_from_cache)
        pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        pulumi.set(__self__, "repo_name", repo_name)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> _builtins.str:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: _builtins.str):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="loadFromCache")
    def load_from_cache(self) -> _builtins.str:
        """
        If the Entity is to be fetched from cache
        """
        return pulumi.get(self, "load_from_cache")

    @load_from_cache.setter
    def load_from_cache(self, value: _builtins.str):
        pulumi.set(self, "load_from_cache", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> _builtins.bool:
        """
        Load Infrastructure yaml from fallback branch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: _builtins.bool):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> _builtins.str:
        """
        Repo name of remote Infrastructure
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: _builtins.str):
        pulumi.set(self, "repo_name", value)


if not MYPY:
    class GetInputSetGitDetailsArgsDict(TypedDict):
        base_branch: _builtins.str
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch_name: _builtins.str
        """
        Name of the branch.
        """
        commit_message: _builtins.str
        """
        Commit message used for the merge commit.
        """
        connector_ref: _builtins.str
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity.
        """
        file_path: _builtins.str
        """
        File path of the Entity in the repository.
        """
        last_commit_id: _builtins.str
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: _builtins.str
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        parent_entity_connector_ref: _builtins.str
        """
        Connector reference for Parent Entity (Pipeline).
        """
        parent_entity_repo_name: _builtins.str
        """
        Repository name for Parent Entity (Pipeline).
        """
        repo_name: _builtins.str
        """
        Name of the repository.
        """
        store_type: _builtins.str
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    GetInputSetGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetInputSetGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: _builtins.str,
                 branch_name: _builtins.str,
                 commit_message: _builtins.str,
                 connector_ref: _builtins.str,
                 file_path: _builtins.str,
                 last_commit_id: _builtins.str,
                 last_object_id: _builtins.str,
                 parent_entity_connector_ref: _builtins.str,
                 parent_entity_repo_name: _builtins.str,
                 repo_name: _builtins.str,
                 store_type: _builtins.str):
        """
        :param _builtins.str base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param _builtins.str branch_name: Name of the branch.
        :param _builtins.str commit_message: Commit message used for the merge commit.
        :param _builtins.str connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity.
        :param _builtins.str file_path: File path of the Entity in the repository.
        :param _builtins.str last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param _builtins.str last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param _builtins.str parent_entity_connector_ref: Connector reference for Parent Entity (Pipeline).
        :param _builtins.str parent_entity_repo_name: Repository name for Parent Entity (Pipeline).
        :param _builtins.str repo_name: Name of the repository.
        :param _builtins.str store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        pulumi.set(__self__, "base_branch", base_branch)
        pulumi.set(__self__, "branch_name", branch_name)
        pulumi.set(__self__, "commit_message", commit_message)
        pulumi.set(__self__, "connector_ref", connector_ref)
        pulumi.set(__self__, "file_path", file_path)
        pulumi.set(__self__, "last_commit_id", last_commit_id)
        pulumi.set(__self__, "last_object_id", last_object_id)
        pulumi.set(__self__, "parent_entity_connector_ref", parent_entity_connector_ref)
        pulumi.set(__self__, "parent_entity_repo_name", parent_entity_repo_name)
        pulumi.set(__self__, "repo_name", repo_name)
        pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> _builtins.str:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: _builtins.str):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> _builtins.str:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: _builtins.str):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> _builtins.str:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: _builtins.str):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> _builtins.str:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: _builtins.str):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> _builtins.str:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: _builtins.str):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> _builtins.str:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: _builtins.str):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> _builtins.str:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: _builtins.str):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="parentEntityConnectorRef")
    def parent_entity_connector_ref(self) -> _builtins.str:
        """
        Connector reference for Parent Entity (Pipeline).
        """
        return pulumi.get(self, "parent_entity_connector_ref")

    @parent_entity_connector_ref.setter
    def parent_entity_connector_ref(self, value: _builtins.str):
        pulumi.set(self, "parent_entity_connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="parentEntityRepoName")
    def parent_entity_repo_name(self) -> _builtins.str:
        """
        Repository name for Parent Entity (Pipeline).
        """
        return pulumi.get(self, "parent_entity_repo_name")

    @parent_entity_repo_name.setter
    def parent_entity_repo_name(self, value: _builtins.str):
        pulumi.set(self, "parent_entity_repo_name", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> _builtins.str:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: _builtins.str):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> _builtins.str:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: _builtins.str):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class GetOverridesGitDetailsArgsDict(TypedDict):
        branch: _builtins.str
        """
        Name of the branch.
        """
        load_from_cache: _builtins.bool
        """
        Load service yaml from fallback branch
        """
        load_from_fallback_branch: _builtins.bool
        """
        Load service yaml from fallback branch
        """
        repo_name: _builtins.str
        """
        Repo name of remote service override
        """
elif False:
    GetOverridesGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetOverridesGitDetailsArgs:
    def __init__(__self__, *,
                 branch: _builtins.str,
                 load_from_cache: _builtins.bool,
                 load_from_fallback_branch: _builtins.bool,
                 repo_name: _builtins.str):
        """
        :param _builtins.str branch: Name of the branch.
        :param _builtins.bool load_from_cache: Load service yaml from fallback branch
        :param _builtins.bool load_from_fallback_branch: Load service yaml from fallback branch
        :param _builtins.str repo_name: Repo name of remote service override
        """
        pulumi.set(__self__, "branch", branch)
        pulumi.set(__self__, "load_from_cache", load_from_cache)
        pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        pulumi.set(__self__, "repo_name", repo_name)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> _builtins.str:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: _builtins.str):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="loadFromCache")
    def load_from_cache(self) -> _builtins.bool:
        """
        Load service yaml from fallback branch
        """
        return pulumi.get(self, "load_from_cache")

    @load_from_cache.setter
    def load_from_cache(self, value: _builtins.bool):
        pulumi.set(self, "load_from_cache", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> _builtins.bool:
        """
        Load service yaml from fallback branch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: _builtins.bool):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> _builtins.str:
        """
        Repo name of remote service override
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: _builtins.str):
        pulumi.set(self, "repo_name", value)


if not MYPY:
    class GetPipelineCentralNotificationRuleCustomNotificationTemplateRefArgsDict(TypedDict):
        template_ref: _builtins.str
        version_label: _builtins.str
        variables: NotRequired[Sequence['GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict']]
elif False:
    GetPipelineCentralNotificationRuleCustomNotificationTemplateRefArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPipelineCentralNotificationRuleCustomNotificationTemplateRefArgs:
    def __init__(__self__, *,
                 template_ref: _builtins.str,
                 version_label: _builtins.str,
                 variables: Optional[Sequence['GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']] = None):
        pulumi.set(__self__, "template_ref", template_ref)
        pulumi.set(__self__, "version_label", version_label)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @_builtins.property
    @pulumi.getter(name="templateRef")
    def template_ref(self) -> _builtins.str:
        return pulumi.get(self, "template_ref")

    @template_ref.setter
    def template_ref(self, value: _builtins.str):
        pulumi.set(self, "template_ref", value)

    @_builtins.property
    @pulumi.getter(name="versionLabel")
    def version_label(self) -> _builtins.str:
        return pulumi.get(self, "version_label")

    @version_label.setter
    def version_label(self, value: _builtins.str):
        pulumi.set(self, "version_label", value)

    @_builtins.property
    @pulumi.getter
    def variables(self) -> Optional[Sequence['GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]:
        return pulumi.get(self, "variables")

    @variables.setter
    def variables(self, value: Optional[Sequence['GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs']]):
        pulumi.set(self, "variables", value)


if not MYPY:
    class GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict(TypedDict):
        name: _builtins.str
        value: _builtins.str
        type: NotRequired[_builtins.str]
elif False:
    GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPipelineCentralNotificationRuleCustomNotificationTemplateRefVariableArgs:
    def __init__(__self__, *,
                 name: _builtins.str,
                 value: _builtins.str,
                 type: Optional[_builtins.str] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter
    def name(self) -> _builtins.str:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: _builtins.str):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[_builtins.str]):
        pulumi.set(self, "type", value)


if not MYPY:
    class GetPipelineCentralNotificationRuleNotificationConditionArgsDict(TypedDict):
        condition_name: _builtins.str
        notification_event_configs: Sequence['GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict']
elif False:
    GetPipelineCentralNotificationRuleNotificationConditionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPipelineCentralNotificationRuleNotificationConditionArgs:
    def __init__(__self__, *,
                 condition_name: _builtins.str,
                 notification_event_configs: Sequence['GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']):
        pulumi.set(__self__, "condition_name", condition_name)
        pulumi.set(__self__, "notification_event_configs", notification_event_configs)

    @_builtins.property
    @pulumi.getter(name="conditionName")
    def condition_name(self) -> _builtins.str:
        return pulumi.get(self, "condition_name")

    @condition_name.setter
    def condition_name(self, value: _builtins.str):
        pulumi.set(self, "condition_name", value)

    @_builtins.property
    @pulumi.getter(name="notificationEventConfigs")
    def notification_event_configs(self) -> Sequence['GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']:
        return pulumi.get(self, "notification_event_configs")

    @notification_event_configs.setter
    def notification_event_configs(self, value: Sequence['GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs']):
        pulumi.set(self, "notification_event_configs", value)


if not MYPY:
    class GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict(TypedDict):
        notification_entity: _builtins.str
        notification_event: _builtins.str
        """
        The pipeline event that triggers the notification. Supported values: `PIPELINE_START`, `PIPELINE_SUCCESS`, `PIPELINE_FAILED`, `STAGE_START`, `STAGE_SUCCESS`, `STAGE_FAILED`.
        """
        entity_identifiers: NotRequired[Sequence[_builtins.str]]
        notification_event_datas: NotRequired[Sequence['GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgsDict']]
elif False:
    GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigArgs:
    def __init__(__self__, *,
                 notification_entity: _builtins.str,
                 notification_event: _builtins.str,
                 entity_identifiers: Optional[Sequence[_builtins.str]] = None,
                 notification_event_datas: Optional[Sequence['GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs']] = None):
        """
        :param _builtins.str notification_event: The pipeline event that triggers the notification. Supported values: `PIPELINE_START`, `PIPELINE_SUCCESS`, `PIPELINE_FAILED`, `STAGE_START`, `STAGE_SUCCESS`, `STAGE_FAILED`.
        """
        pulumi.set(__self__, "notification_entity", notification_entity)
        pulumi.set(__self__, "notification_event", notification_event)
        if entity_identifiers is not None:
            pulumi.set(__self__, "entity_identifiers", entity_identifiers)
        if notification_event_datas is not None:
            pulumi.set(__self__, "notification_event_datas", notification_event_datas)

    @_builtins.property
    @pulumi.getter(name="notificationEntity")
    def notification_entity(self) -> _builtins.str:
        return pulumi.get(self, "notification_entity")

    @notification_entity.setter
    def notification_entity(self, value: _builtins.str):
        pulumi.set(self, "notification_entity", value)

    @_builtins.property
    @pulumi.getter(name="notificationEvent")
    def notification_event(self) -> _builtins.str:
        """
        The pipeline event that triggers the notification. Supported values: `PIPELINE_START`, `PIPELINE_SUCCESS`, `PIPELINE_FAILED`, `STAGE_START`, `STAGE_SUCCESS`, `STAGE_FAILED`.
        """
        return pulumi.get(self, "notification_event")

    @notification_event.setter
    def notification_event(self, value: _builtins.str):
        pulumi.set(self, "notification_event", value)

    @_builtins.property
    @pulumi.getter(name="entityIdentifiers")
    def entity_identifiers(self) -> Optional[Sequence[_builtins.str]]:
        return pulumi.get(self, "entity_identifiers")

    @entity_identifiers.setter
    def entity_identifiers(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "entity_identifiers", value)

    @_builtins.property
    @pulumi.getter(name="notificationEventDatas")
    def notification_event_datas(self) -> Optional[Sequence['GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs']]:
        return pulumi.get(self, "notification_event_datas")

    @notification_event_datas.setter
    def notification_event_datas(self, value: Optional[Sequence['GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs']]):
        pulumi.set(self, "notification_event_datas", value)


if not MYPY:
    class GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgsDict(TypedDict):
        scope_identifiers: NotRequired[Sequence[_builtins.str]]
        type: NotRequired[_builtins.str]
elif False:
    GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPipelineCentralNotificationRuleNotificationConditionNotificationEventConfigNotificationEventDataArgs:
    def __init__(__self__, *,
                 scope_identifiers: Optional[Sequence[_builtins.str]] = None,
                 type: Optional[_builtins.str] = None):
        if scope_identifiers is not None:
            pulumi.set(__self__, "scope_identifiers", scope_identifiers)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="scopeIdentifiers")
    def scope_identifiers(self) -> Optional[Sequence[_builtins.str]]:
        return pulumi.get(self, "scope_identifiers")

    @scope_identifiers.setter
    def scope_identifiers(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "scope_identifiers", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[_builtins.str]):
        pulumi.set(self, "type", value)


if not MYPY:
    class GetPipelineGitDetailsArgsDict(TypedDict):
        base_branch: _builtins.str
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        branch_name: _builtins.str
        """
        Name of the branch.
        """
        commit_message: _builtins.str
        """
        Commit message used for the merge commit.
        """
        connector_ref: _builtins.str
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity.
        """
        file_path: _builtins.str
        """
        File path of the Entity in the repository.
        """
        last_commit_id: _builtins.str
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: _builtins.str
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        repo_name: _builtins.str
        """
        Name of the repository.
        """
        store_type: _builtins.str
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
elif False:
    GetPipelineGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPipelineGitDetailsArgs:
    def __init__(__self__, *,
                 base_branch: _builtins.str,
                 branch_name: _builtins.str,
                 commit_message: _builtins.str,
                 connector_ref: _builtins.str,
                 file_path: _builtins.str,
                 last_commit_id: _builtins.str,
                 last_object_id: _builtins.str,
                 repo_name: _builtins.str,
                 store_type: _builtins.str):
        """
        :param _builtins.str base_branch: Name of the default branch (this checks out a new branch titled by branch_name).
        :param _builtins.str branch_name: Name of the branch.
        :param _builtins.str commit_message: Commit message used for the merge commit.
        :param _builtins.str connector_ref: Identifier of the Harness Connector used for CRUD operations on the Entity.
        :param _builtins.str file_path: File path of the Entity in the repository.
        :param _builtins.str last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param _builtins.str last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param _builtins.str repo_name: Name of the repository.
        :param _builtins.str store_type: Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        pulumi.set(__self__, "base_branch", base_branch)
        pulumi.set(__self__, "branch_name", branch_name)
        pulumi.set(__self__, "commit_message", commit_message)
        pulumi.set(__self__, "connector_ref", connector_ref)
        pulumi.set(__self__, "file_path", file_path)
        pulumi.set(__self__, "last_commit_id", last_commit_id)
        pulumi.set(__self__, "last_object_id", last_object_id)
        pulumi.set(__self__, "repo_name", repo_name)
        pulumi.set(__self__, "store_type", store_type)

    @_builtins.property
    @pulumi.getter(name="baseBranch")
    def base_branch(self) -> _builtins.str:
        """
        Name of the default branch (this checks out a new branch titled by branch_name).
        """
        return pulumi.get(self, "base_branch")

    @base_branch.setter
    def base_branch(self, value: _builtins.str):
        pulumi.set(self, "base_branch", value)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> _builtins.str:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: _builtins.str):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="commitMessage")
    def commit_message(self) -> _builtins.str:
        """
        Commit message used for the merge commit.
        """
        return pulumi.get(self, "commit_message")

    @commit_message.setter
    def commit_message(self, value: _builtins.str):
        pulumi.set(self, "commit_message", value)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> _builtins.str:
        """
        Identifier of the Harness Connector used for CRUD operations on the Entity.
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: _builtins.str):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> _builtins.str:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: _builtins.str):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> _builtins.str:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: _builtins.str):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> _builtins.str:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: _builtins.str):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> _builtins.str:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: _builtins.str):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="storeType")
    def store_type(self) -> _builtins.str:
        """
        Specifies whether the Entity is to be stored in Git or not. Possible values: INLINE, REMOTE.
        """
        return pulumi.get(self, "store_type")

    @store_type.setter
    def store_type(self, value: _builtins.str):
        pulumi.set(self, "store_type", value)


if not MYPY:
    class GetPolicySetPolicyArgsDict(TypedDict):
        identifier: _builtins.str
        """
        Unique identifier of the policy
        """
        severity: _builtins.str
        """
        Policy failure response - 'warning' for continuation, 'error' for exit
        """
elif False:
    GetPolicySetPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPolicySetPolicyArgs:
    def __init__(__self__, *,
                 identifier: _builtins.str,
                 severity: _builtins.str):
        """
        :param _builtins.str identifier: Unique identifier of the policy
        :param _builtins.str severity: Policy failure response - 'warning' for continuation, 'error' for exit
        """
        pulumi.set(__self__, "identifier", identifier)
        pulumi.set(__self__, "severity", severity)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> _builtins.str:
        """
        Unique identifier of the policy
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: _builtins.str):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def severity(self) -> _builtins.str:
        """
        Policy failure response - 'warning' for continuation, 'error' for exit
        """
        return pulumi.get(self, "severity")

    @severity.setter
    def severity(self, value: _builtins.str):
        pulumi.set(self, "severity", value)


if not MYPY:
    class GetPolicySetPolicyReferenceArgsDict(TypedDict):
        identifier: _builtins.str
        """
        Unique identifier of the policy
        """
        severity: _builtins.str
        """
        Policy failure response - 'warning' for continuation, 'error' for exit
        """
elif False:
    GetPolicySetPolicyReferenceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPolicySetPolicyReferenceArgs:
    def __init__(__self__, *,
                 identifier: _builtins.str,
                 severity: _builtins.str):
        """
        :param _builtins.str identifier: Unique identifier of the policy
        :param _builtins.str severity: Policy failure response - 'warning' for continuation, 'error' for exit
        """
        pulumi.set(__self__, "identifier", identifier)
        pulumi.set(__self__, "severity", severity)

    @_builtins.property
    @pulumi.getter
    def identifier(self) -> _builtins.str:
        """
        Unique identifier of the policy
        """
        return pulumi.get(self, "identifier")

    @identifier.setter
    def identifier(self, value: _builtins.str):
        pulumi.set(self, "identifier", value)

    @_builtins.property
    @pulumi.getter
    def severity(self) -> _builtins.str:
        """
        Policy failure response - 'warning' for continuation, 'error' for exit
        """
        return pulumi.get(self, "severity")

    @severity.setter
    def severity(self, value: _builtins.str):
        pulumi.set(self, "severity", value)


if not MYPY:
    class GetRepoRuleBranchBypassArgsDict(TypedDict):
        repo_owners: NotRequired[_builtins.bool]
        """
        Allow users with repository edit permission to bypass.
        """
        user_ids: NotRequired[Sequence[_builtins.str]]
        """
        List of user ids with who can bypass.
        """
elif False:
    GetRepoRuleBranchBypassArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetRepoRuleBranchBypassArgs:
    def __init__(__self__, *,
                 repo_owners: Optional[_builtins.bool] = None,
                 user_ids: Optional[Sequence[_builtins.str]] = None):
        """
        :param _builtins.bool repo_owners: Allow users with repository edit permission to bypass.
        :param Sequence[_builtins.str] user_ids: List of user ids with who can bypass.
        """
        if repo_owners is not None:
            pulumi.set(__self__, "repo_owners", repo_owners)
        if user_ids is not None:
            pulumi.set(__self__, "user_ids", user_ids)

    @_builtins.property
    @pulumi.getter(name="repoOwners")
    def repo_owners(self) -> Optional[_builtins.bool]:
        """
        Allow users with repository edit permission to bypass.
        """
        return pulumi.get(self, "repo_owners")

    @repo_owners.setter
    def repo_owners(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "repo_owners", value)

    @_builtins.property
    @pulumi.getter(name="userIds")
    def user_ids(self) -> Optional[Sequence[_builtins.str]]:
        """
        List of user ids with who can bypass.
        """
        return pulumi.get(self, "user_ids")

    @user_ids.setter
    def user_ids(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "user_ids", value)


if not MYPY:
    class GetRepoRuleBranchPatternArgsDict(TypedDict):
        default_branch: NotRequired[_builtins.bool]
        """
        Should rule apply to default branch of the repository.
        """
        excludes: NotRequired[Sequence[_builtins.str]]
        """
        Globstar branch patterns on which rules will NOT be applied.
        """
        includes: NotRequired[Sequence[_builtins.str]]
        """
        Globstar branch patterns on which rules will be applied.
        """
elif False:
    GetRepoRuleBranchPatternArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetRepoRuleBranchPatternArgs:
    def __init__(__self__, *,
                 default_branch: Optional[_builtins.bool] = None,
                 excludes: Optional[Sequence[_builtins.str]] = None,
                 includes: Optional[Sequence[_builtins.str]] = None):
        """
        :param _builtins.bool default_branch: Should rule apply to default branch of the repository.
        :param Sequence[_builtins.str] excludes: Globstar branch patterns on which rules will NOT be applied.
        :param Sequence[_builtins.str] includes: Globstar branch patterns on which rules will be applied.
        """
        if default_branch is not None:
            pulumi.set(__self__, "default_branch", default_branch)
        if excludes is not None:
            pulumi.set(__self__, "excludes", excludes)
        if includes is not None:
            pulumi.set(__self__, "includes", includes)

    @_builtins.property
    @pulumi.getter(name="defaultBranch")
    def default_branch(self) -> Optional[_builtins.bool]:
        """
        Should rule apply to default branch of the repository.
        """
        return pulumi.get(self, "default_branch")

    @default_branch.setter
    def default_branch(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "default_branch", value)

    @_builtins.property
    @pulumi.getter
    def excludes(self) -> Optional[Sequence[_builtins.str]]:
        """
        Globstar branch patterns on which rules will NOT be applied.
        """
        return pulumi.get(self, "excludes")

    @excludes.setter
    def excludes(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "excludes", value)

    @_builtins.property
    @pulumi.getter
    def includes(self) -> Optional[Sequence[_builtins.str]]:
        """
        Globstar branch patterns on which rules will be applied.
        """
        return pulumi.get(self, "includes")

    @includes.setter
    def includes(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "includes", value)


if not MYPY:
    class GetRepoRuleBranchPolicyArgsDict(TypedDict):
        allow_merge_strategies: NotRequired[Sequence[_builtins.str]]
        """
        Limit which merge strategies are available to merge a pull request(Any of squash, rebase, merge).
        """
        block_branch_creation: NotRequired[_builtins.bool]
        """
        Only allow users with bypass permission to create matching branches.
        """
        block_branch_deletion: NotRequired[_builtins.bool]
        """
        Only allow users with bypass permission to delete matching branches.
        """
        delete_branch_on_merge: NotRequired[_builtins.bool]
        """
        Automatically delete the source branch of a pull request after it is merged.
        """
        require_code_owners: NotRequired[_builtins.bool]
        """
        Require approval on pull requests from one reviewer for each codeowner rule.
        """
        require_latest_commit_approval: NotRequired[_builtins.bool]
        """
        Require re-approval when there are new changes in the pull request.
        """
        require_minimum_approval_count: NotRequired[_builtins.int]
        """
        Require approval on pull requests from a minimum number of reviewers.
        """
        require_no_change_request: NotRequired[_builtins.bool]
        """
        Require all request for changes have been resolved.
        """
        require_pull_request: NotRequired[_builtins.bool]
        """
        Do not allow any changes to matching branches without a pull request.
        """
        require_resolve_all_comments: NotRequired[_builtins.bool]
        """
        All comments on a pull request must be resolved before it can be merged.
        """
        require_status_checks: NotRequired[Sequence[_builtins.str]]
        """
        Selected status checks must pass before a pull request can be merged.
        """
elif False:
    GetRepoRuleBranchPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetRepoRuleBranchPolicyArgs:
    def __init__(__self__, *,
                 allow_merge_strategies: Optional[Sequence[_builtins.str]] = None,
                 block_branch_creation: Optional[_builtins.bool] = None,
                 block_branch_deletion: Optional[_builtins.bool] = None,
                 delete_branch_on_merge: Optional[_builtins.bool] = None,
                 require_code_owners: Optional[_builtins.bool] = None,
                 require_latest_commit_approval: Optional[_builtins.bool] = None,
                 require_minimum_approval_count: Optional[_builtins.int] = None,
                 require_no_change_request: Optional[_builtins.bool] = None,
                 require_pull_request: Optional[_builtins.bool] = None,
                 require_resolve_all_comments: Optional[_builtins.bool] = None,
                 require_status_checks: Optional[Sequence[_builtins.str]] = None):
        """
        :param Sequence[_builtins.str] allow_merge_strategies: Limit which merge strategies are available to merge a pull request(Any of squash, rebase, merge).
        :param _builtins.bool block_branch_creation: Only allow users with bypass permission to create matching branches.
        :param _builtins.bool block_branch_deletion: Only allow users with bypass permission to delete matching branches.
        :param _builtins.bool delete_branch_on_merge: Automatically delete the source branch of a pull request after it is merged.
        :param _builtins.bool require_code_owners: Require approval on pull requests from one reviewer for each codeowner rule.
        :param _builtins.bool require_latest_commit_approval: Require re-approval when there are new changes in the pull request.
        :param _builtins.int require_minimum_approval_count: Require approval on pull requests from a minimum number of reviewers.
        :param _builtins.bool require_no_change_request: Require all request for changes have been resolved.
        :param _builtins.bool require_pull_request: Do not allow any changes to matching branches without a pull request.
        :param _builtins.bool require_resolve_all_comments: All comments on a pull request must be resolved before it can be merged.
        :param Sequence[_builtins.str] require_status_checks: Selected status checks must pass before a pull request can be merged.
        """
        if allow_merge_strategies is not None:
            pulumi.set(__self__, "allow_merge_strategies", allow_merge_strategies)
        if block_branch_creation is not None:
            pulumi.set(__self__, "block_branch_creation", block_branch_creation)
        if block_branch_deletion is not None:
            pulumi.set(__self__, "block_branch_deletion", block_branch_deletion)
        if delete_branch_on_merge is not None:
            pulumi.set(__self__, "delete_branch_on_merge", delete_branch_on_merge)
        if require_code_owners is not None:
            pulumi.set(__self__, "require_code_owners", require_code_owners)
        if require_latest_commit_approval is not None:
            pulumi.set(__self__, "require_latest_commit_approval", require_latest_commit_approval)
        if require_minimum_approval_count is not None:
            pulumi.set(__self__, "require_minimum_approval_count", require_minimum_approval_count)
        if require_no_change_request is not None:
            pulumi.set(__self__, "require_no_change_request", require_no_change_request)
        if require_pull_request is not None:
            pulumi.set(__self__, "require_pull_request", require_pull_request)
        if require_resolve_all_comments is not None:
            pulumi.set(__self__, "require_resolve_all_comments", require_resolve_all_comments)
        if require_status_checks is not None:
            pulumi.set(__self__, "require_status_checks", require_status_checks)

    @_builtins.property
    @pulumi.getter(name="allowMergeStrategies")
    def allow_merge_strategies(self) -> Optional[Sequence[_builtins.str]]:
        """
        Limit which merge strategies are available to merge a pull request(Any of squash, rebase, merge).
        """
        return pulumi.get(self, "allow_merge_strategies")

    @allow_merge_strategies.setter
    def allow_merge_strategies(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "allow_merge_strategies", value)

    @_builtins.property
    @pulumi.getter(name="blockBranchCreation")
    def block_branch_creation(self) -> Optional[_builtins.bool]:
        """
        Only allow users with bypass permission to create matching branches.
        """
        return pulumi.get(self, "block_branch_creation")

    @block_branch_creation.setter
    def block_branch_creation(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "block_branch_creation", value)

    @_builtins.property
    @pulumi.getter(name="blockBranchDeletion")
    def block_branch_deletion(self) -> Optional[_builtins.bool]:
        """
        Only allow users with bypass permission to delete matching branches.
        """
        return pulumi.get(self, "block_branch_deletion")

    @block_branch_deletion.setter
    def block_branch_deletion(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "block_branch_deletion", value)

    @_builtins.property
    @pulumi.getter(name="deleteBranchOnMerge")
    def delete_branch_on_merge(self) -> Optional[_builtins.bool]:
        """
        Automatically delete the source branch of a pull request after it is merged.
        """
        return pulumi.get(self, "delete_branch_on_merge")

    @delete_branch_on_merge.setter
    def delete_branch_on_merge(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "delete_branch_on_merge", value)

    @_builtins.property
    @pulumi.getter(name="requireCodeOwners")
    def require_code_owners(self) -> Optional[_builtins.bool]:
        """
        Require approval on pull requests from one reviewer for each codeowner rule.
        """
        return pulumi.get(self, "require_code_owners")

    @require_code_owners.setter
    def require_code_owners(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "require_code_owners", value)

    @_builtins.property
    @pulumi.getter(name="requireLatestCommitApproval")
    def require_latest_commit_approval(self) -> Optional[_builtins.bool]:
        """
        Require re-approval when there are new changes in the pull request.
        """
        return pulumi.get(self, "require_latest_commit_approval")

    @require_latest_commit_approval.setter
    def require_latest_commit_approval(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "require_latest_commit_approval", value)

    @_builtins.property
    @pulumi.getter(name="requireMinimumApprovalCount")
    def require_minimum_approval_count(self) -> Optional[_builtins.int]:
        """
        Require approval on pull requests from a minimum number of reviewers.
        """
        return pulumi.get(self, "require_minimum_approval_count")

    @require_minimum_approval_count.setter
    def require_minimum_approval_count(self, value: Optional[_builtins.int]):
        pulumi.set(self, "require_minimum_approval_count", value)

    @_builtins.property
    @pulumi.getter(name="requireNoChangeRequest")
    def require_no_change_request(self) -> Optional[_builtins.bool]:
        """
        Require all request for changes have been resolved.
        """
        return pulumi.get(self, "require_no_change_request")

    @require_no_change_request.setter
    def require_no_change_request(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "require_no_change_request", value)

    @_builtins.property
    @pulumi.getter(name="requirePullRequest")
    def require_pull_request(self) -> Optional[_builtins.bool]:
        """
        Do not allow any changes to matching branches without a pull request.
        """
        return pulumi.get(self, "require_pull_request")

    @require_pull_request.setter
    def require_pull_request(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "require_pull_request", value)

    @_builtins.property
    @pulumi.getter(name="requireResolveAllComments")
    def require_resolve_all_comments(self) -> Optional[_builtins.bool]:
        """
        All comments on a pull request must be resolved before it can be merged.
        """
        return pulumi.get(self, "require_resolve_all_comments")

    @require_resolve_all_comments.setter
    def require_resolve_all_comments(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "require_resolve_all_comments", value)

    @_builtins.property
    @pulumi.getter(name="requireStatusChecks")
    def require_status_checks(self) -> Optional[Sequence[_builtins.str]]:
        """
        Selected status checks must pass before a pull request can be merged.
        """
        return pulumi.get(self, "require_status_checks")

    @require_status_checks.setter
    def require_status_checks(self, value: Optional[Sequence[_builtins.str]]):
        pulumi.set(self, "require_status_checks", value)


if not MYPY:
    class GetRepoSourceArgsDict(TypedDict):
        host: NotRequired[_builtins.str]
        """
        The host URL for the import source.
        """
        password: NotRequired[_builtins.str]
        """
        The password for authentication when importing.
        """
        repo: NotRequired[_builtins.str]
        """
        The full identifier of the repository on the SCM provider's platform.
        """
        type: NotRequired[_builtins.str]
        """
        The type of SCM provider (github, gitlab, bitbucket, stash, gitea, gogs) when importing.
        """
        username: NotRequired[_builtins.str]
        """
        The username for authentication when importing.
        """
elif False:
    GetRepoSourceArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetRepoSourceArgs:
    def __init__(__self__, *,
                 host: Optional[_builtins.str] = None,
                 password: Optional[_builtins.str] = None,
                 repo: Optional[_builtins.str] = None,
                 type: Optional[_builtins.str] = None,
                 username: Optional[_builtins.str] = None):
        """
        :param _builtins.str host: The host URL for the import source.
        :param _builtins.str password: The password for authentication when importing.
        :param _builtins.str repo: The full identifier of the repository on the SCM provider's platform.
        :param _builtins.str type: The type of SCM provider (github, gitlab, bitbucket, stash, gitea, gogs) when importing.
        :param _builtins.str username: The username for authentication when importing.
        """
        if host is not None:
            pulumi.set(__self__, "host", host)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if repo is not None:
            pulumi.set(__self__, "repo", repo)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @_builtins.property
    @pulumi.getter
    def host(self) -> Optional[_builtins.str]:
        """
        The host URL for the import source.
        """
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: Optional[_builtins.str]):
        pulumi.set(self, "host", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[_builtins.str]:
        """
        The password for authentication when importing.
        """
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: Optional[_builtins.str]):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter
    def repo(self) -> Optional[_builtins.str]:
        """
        The full identifier of the repository on the SCM provider's platform.
        """
        return pulumi.get(self, "repo")

    @repo.setter
    def repo(self, value: Optional[_builtins.str]):
        pulumi.set(self, "repo", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> Optional[_builtins.str]:
        """
        The type of SCM provider (github, gitlab, bitbucket, stash, gitea, gogs) when importing.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[_builtins.str]):
        pulumi.set(self, "type", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[_builtins.str]:
        """
        The username for authentication when importing.
        """
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: Optional[_builtins.str]):
        pulumi.set(self, "username", value)


if not MYPY:
    class GetSecretFileAdditionalMetadataArgsDict(TypedDict):
        values: NotRequired[Sequence['GetSecretFileAdditionalMetadataValueArgsDict']]
elif False:
    GetSecretFileAdditionalMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetSecretFileAdditionalMetadataArgs:
    def __init__(__self__, *,
                 values: Optional[Sequence['GetSecretFileAdditionalMetadataValueArgs']] = None):
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[Sequence['GetSecretFileAdditionalMetadataValueArgs']]:
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[Sequence['GetSecretFileAdditionalMetadataValueArgs']]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GetSecretFileAdditionalMetadataValueArgsDict(TypedDict):
        gcp_project_id: NotRequired[_builtins.str]
        """
        GCP Project ID (for GCP Secret Manager)
        """
        kms_key_id: NotRequired[_builtins.str]
        """
        KMS Key ID (for AWS Secret Manager)
        """
        regions: NotRequired[_builtins.str]
        """
        GCP region for the secret (for GCP Secret Manager)
        """
        version: NotRequired[_builtins.str]
        """
        Version of the secret (for AWS/Azure Secret Manager)
        """
elif False:
    GetSecretFileAdditionalMetadataValueArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetSecretFileAdditionalMetadataValueArgs:
    def __init__(__self__, *,
                 gcp_project_id: Optional[_builtins.str] = None,
                 kms_key_id: Optional[_builtins.str] = None,
                 regions: Optional[_builtins.str] = None,
                 version: Optional[_builtins.str] = None):
        """
        :param _builtins.str gcp_project_id: GCP Project ID (for GCP Secret Manager)
        :param _builtins.str kms_key_id: KMS Key ID (for AWS Secret Manager)
        :param _builtins.str regions: GCP region for the secret (for GCP Secret Manager)
        :param _builtins.str version: Version of the secret (for AWS/Azure Secret Manager)
        """
        if gcp_project_id is not None:
            pulumi.set(__self__, "gcp_project_id", gcp_project_id)
        if kms_key_id is not None:
            pulumi.set(__self__, "kms_key_id", kms_key_id)
        if regions is not None:
            pulumi.set(__self__, "regions", regions)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="gcpProjectId")
    def gcp_project_id(self) -> Optional[_builtins.str]:
        """
        GCP Project ID (for GCP Secret Manager)
        """
        return pulumi.get(self, "gcp_project_id")

    @gcp_project_id.setter
    def gcp_project_id(self, value: Optional[_builtins.str]):
        pulumi.set(self, "gcp_project_id", value)

    @_builtins.property
    @pulumi.getter(name="kmsKeyId")
    def kms_key_id(self) -> Optional[_builtins.str]:
        """
        KMS Key ID (for AWS Secret Manager)
        """
        return pulumi.get(self, "kms_key_id")

    @kms_key_id.setter
    def kms_key_id(self, value: Optional[_builtins.str]):
        pulumi.set(self, "kms_key_id", value)

    @_builtins.property
    @pulumi.getter
    def regions(self) -> Optional[_builtins.str]:
        """
        GCP region for the secret (for GCP Secret Manager)
        """
        return pulumi.get(self, "regions")

    @regions.setter
    def regions(self, value: Optional[_builtins.str]):
        pulumi.set(self, "regions", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[_builtins.str]:
        """
        Version of the secret (for AWS/Azure Secret Manager)
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[_builtins.str]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GetSecretTextAdditionalMetadataArgsDict(TypedDict):
        values: NotRequired[Sequence['GetSecretTextAdditionalMetadataValueArgsDict']]
elif False:
    GetSecretTextAdditionalMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetSecretTextAdditionalMetadataArgs:
    def __init__(__self__, *,
                 values: Optional[Sequence['GetSecretTextAdditionalMetadataValueArgs']] = None):
        if values is not None:
            pulumi.set(__self__, "values", values)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[Sequence['GetSecretTextAdditionalMetadataValueArgs']]:
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[Sequence['GetSecretTextAdditionalMetadataValueArgs']]):
        pulumi.set(self, "values", value)


if not MYPY:
    class GetSecretTextAdditionalMetadataValueArgsDict(TypedDict):
        gcp_project_id: NotRequired[_builtins.str]
        """
        GCP Project ID (for GCP Secret Manager)
        """
        kms_key_id: NotRequired[_builtins.str]
        """
        KMS Key ID (for AWS Secret Manager)
        """
        regions: NotRequired[_builtins.str]
        """
        GCP region for the secret (for GCP Secret Manager)
        """
        version: NotRequired[_builtins.str]
        """
        Version of the secret (for AWS/Azure Secret Manager)
        """
elif False:
    GetSecretTextAdditionalMetadataValueArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetSecretTextAdditionalMetadataValueArgs:
    def __init__(__self__, *,
                 gcp_project_id: Optional[_builtins.str] = None,
                 kms_key_id: Optional[_builtins.str] = None,
                 regions: Optional[_builtins.str] = None,
                 version: Optional[_builtins.str] = None):
        """
        :param _builtins.str gcp_project_id: GCP Project ID (for GCP Secret Manager)
        :param _builtins.str kms_key_id: KMS Key ID (for AWS Secret Manager)
        :param _builtins.str regions: GCP region for the secret (for GCP Secret Manager)
        :param _builtins.str version: Version of the secret (for AWS/Azure Secret Manager)
        """
        if gcp_project_id is not None:
            pulumi.set(__self__, "gcp_project_id", gcp_project_id)
        if kms_key_id is not None:
            pulumi.set(__self__, "kms_key_id", kms_key_id)
        if regions is not None:
            pulumi.set(__self__, "regions", regions)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @_builtins.property
    @pulumi.getter(name="gcpProjectId")
    def gcp_project_id(self) -> Optional[_builtins.str]:
        """
        GCP Project ID (for GCP Secret Manager)
        """
        return pulumi.get(self, "gcp_project_id")

    @gcp_project_id.setter
    def gcp_project_id(self, value: Optional[_builtins.str]):
        pulumi.set(self, "gcp_project_id", value)

    @_builtins.property
    @pulumi.getter(name="kmsKeyId")
    def kms_key_id(self) -> Optional[_builtins.str]:
        """
        KMS Key ID (for AWS Secret Manager)
        """
        return pulumi.get(self, "kms_key_id")

    @kms_key_id.setter
    def kms_key_id(self, value: Optional[_builtins.str]):
        pulumi.set(self, "kms_key_id", value)

    @_builtins.property
    @pulumi.getter
    def regions(self) -> Optional[_builtins.str]:
        """
        GCP region for the secret (for GCP Secret Manager)
        """
        return pulumi.get(self, "regions")

    @regions.setter
    def regions(self, value: Optional[_builtins.str]):
        pulumi.set(self, "regions", value)

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[_builtins.str]:
        """
        Version of the secret (for AWS/Azure Secret Manager)
        """
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: Optional[_builtins.str]):
        pulumi.set(self, "version", value)


if not MYPY:
    class GetServiceGitDetailsArgsDict(TypedDict):
        branch: _builtins.str
        """
        Name of the branch.
        """
        load_from_fallback_branch: _builtins.bool
        """
        Load service yaml from fallback branch
        """
        repo_name: _builtins.str
        """
        Repo name of remote service
        """
elif False:
    GetServiceGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetServiceGitDetailsArgs:
    def __init__(__self__, *,
                 branch: _builtins.str,
                 load_from_fallback_branch: _builtins.bool,
                 repo_name: _builtins.str):
        """
        :param _builtins.str branch: Name of the branch.
        :param _builtins.bool load_from_fallback_branch: Load service yaml from fallback branch
        :param _builtins.str repo_name: Repo name of remote service
        """
        pulumi.set(__self__, "branch", branch)
        pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        pulumi.set(__self__, "repo_name", repo_name)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> _builtins.str:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: _builtins.str):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> _builtins.bool:
        """
        Load service yaml from fallback branch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: _builtins.bool):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> _builtins.str:
        """
        Repo name of remote service
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: _builtins.str):
        pulumi.set(self, "repo_name", value)


if not MYPY:
    class GetServiceOverridesV2GitDetailsArgsDict(TypedDict):
        branch: _builtins.str
        """
        Name of the branch.
        """
        load_from_cache: _builtins.bool
        """
        Load service yaml from fallback branch
        """
        load_from_fallback_branch: _builtins.bool
        """
        Load service yaml from fallback branch
        """
        repo_name: _builtins.str
        """
        Repo name of remote service override
        """
elif False:
    GetServiceOverridesV2GitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetServiceOverridesV2GitDetailsArgs:
    def __init__(__self__, *,
                 branch: _builtins.str,
                 load_from_cache: _builtins.bool,
                 load_from_fallback_branch: _builtins.bool,
                 repo_name: _builtins.str):
        """
        :param _builtins.str branch: Name of the branch.
        :param _builtins.bool load_from_cache: Load service yaml from fallback branch
        :param _builtins.bool load_from_fallback_branch: Load service yaml from fallback branch
        :param _builtins.str repo_name: Repo name of remote service override
        """
        pulumi.set(__self__, "branch", branch)
        pulumi.set(__self__, "load_from_cache", load_from_cache)
        pulumi.set(__self__, "load_from_fallback_branch", load_from_fallback_branch)
        pulumi.set(__self__, "repo_name", repo_name)

    @_builtins.property
    @pulumi.getter
    def branch(self) -> _builtins.str:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch")

    @branch.setter
    def branch(self, value: _builtins.str):
        pulumi.set(self, "branch", value)

    @_builtins.property
    @pulumi.getter(name="loadFromCache")
    def load_from_cache(self) -> _builtins.bool:
        """
        Load service yaml from fallback branch
        """
        return pulumi.get(self, "load_from_cache")

    @load_from_cache.setter
    def load_from_cache(self, value: _builtins.bool):
        pulumi.set(self, "load_from_cache", value)

    @_builtins.property
    @pulumi.getter(name="loadFromFallbackBranch")
    def load_from_fallback_branch(self) -> _builtins.bool:
        """
        Load service yaml from fallback branch
        """
        return pulumi.get(self, "load_from_fallback_branch")

    @load_from_fallback_branch.setter
    def load_from_fallback_branch(self, value: _builtins.bool):
        pulumi.set(self, "load_from_fallback_branch", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> _builtins.str:
        """
        Repo name of remote service override
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: _builtins.str):
        pulumi.set(self, "repo_name", value)


if not MYPY:
    class GetTemplateGitDetailsArgsDict(TypedDict):
        last_commit_id: _builtins.str
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        last_object_id: _builtins.str
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        branch_name: NotRequired[_builtins.str]
        """
        Name of the branch.
        """
        file_path: NotRequired[_builtins.str]
        """
        File path of the Entity in the repository.
        """
        file_url: NotRequired[_builtins.str]
        """
        File url of the Entity in the repository.
        """
        repo_name: NotRequired[_builtins.str]
        """
        Name of the repository.
        """
        repo_url: NotRequired[_builtins.str]
        """
        Repo url of the Entity in the repository.
        """
elif False:
    GetTemplateGitDetailsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetTemplateGitDetailsArgs:
    def __init__(__self__, *,
                 last_commit_id: _builtins.str,
                 last_object_id: _builtins.str,
                 branch_name: Optional[_builtins.str] = None,
                 file_path: Optional[_builtins.str] = None,
                 file_url: Optional[_builtins.str] = None,
                 repo_name: Optional[_builtins.str] = None,
                 repo_url: Optional[_builtins.str] = None):
        """
        :param _builtins.str last_commit_id: Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        :param _builtins.str last_object_id: Last object identifier (for Github). To be provided only when updating Pipeline.
        :param _builtins.str branch_name: Name of the branch.
        :param _builtins.str file_path: File path of the Entity in the repository.
        :param _builtins.str file_url: File url of the Entity in the repository.
        :param _builtins.str repo_name: Name of the repository.
        :param _builtins.str repo_url: Repo url of the Entity in the repository.
        """
        pulumi.set(__self__, "last_commit_id", last_commit_id)
        pulumi.set(__self__, "last_object_id", last_object_id)
        if branch_name is not None:
            pulumi.set(__self__, "branch_name", branch_name)
        if file_path is not None:
            pulumi.set(__self__, "file_path", file_path)
        if file_url is not None:
            pulumi.set(__self__, "file_url", file_url)
        if repo_name is not None:
            pulumi.set(__self__, "repo_name", repo_name)
        if repo_url is not None:
            pulumi.set(__self__, "repo_url", repo_url)

    @_builtins.property
    @pulumi.getter(name="lastCommitId")
    def last_commit_id(self) -> _builtins.str:
        """
        Last commit identifier (for Git Repositories other than Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_commit_id")

    @last_commit_id.setter
    def last_commit_id(self, value: _builtins.str):
        pulumi.set(self, "last_commit_id", value)

    @_builtins.property
    @pulumi.getter(name="lastObjectId")
    def last_object_id(self) -> _builtins.str:
        """
        Last object identifier (for Github). To be provided only when updating Pipeline.
        """
        return pulumi.get(self, "last_object_id")

    @last_object_id.setter
    def last_object_id(self, value: _builtins.str):
        pulumi.set(self, "last_object_id", value)

    @_builtins.property
    @pulumi.getter(name="branchName")
    def branch_name(self) -> Optional[_builtins.str]:
        """
        Name of the branch.
        """
        return pulumi.get(self, "branch_name")

    @branch_name.setter
    def branch_name(self, value: Optional[_builtins.str]):
        pulumi.set(self, "branch_name", value)

    @_builtins.property
    @pulumi.getter(name="filePath")
    def file_path(self) -> Optional[_builtins.str]:
        """
        File path of the Entity in the repository.
        """
        return pulumi.get(self, "file_path")

    @file_path.setter
    def file_path(self, value: Optional[_builtins.str]):
        pulumi.set(self, "file_path", value)

    @_builtins.property
    @pulumi.getter(name="fileUrl")
    def file_url(self) -> Optional[_builtins.str]:
        """
        File url of the Entity in the repository.
        """
        return pulumi.get(self, "file_url")

    @file_url.setter
    def file_url(self, value: Optional[_builtins.str]):
        pulumi.set(self, "file_url", value)

    @_builtins.property
    @pulumi.getter(name="repoName")
    def repo_name(self) -> Optional[_builtins.str]:
        """
        Name of the repository.
        """
        return pulumi.get(self, "repo_name")

    @repo_name.setter
    def repo_name(self, value: Optional[_builtins.str]):
        pulumi.set(self, "repo_name", value)

    @_builtins.property
    @pulumi.getter(name="repoUrl")
    def repo_url(self) -> Optional[_builtins.str]:
        """
        Repo url of the Entity in the repository.
        """
        return pulumi.get(self, "repo_url")

    @repo_url.setter
    def repo_url(self, value: Optional[_builtins.str]):
        pulumi.set(self, "repo_url", value)


if not MYPY:
    class GetUsergroupNotificationConfigArgsDict(TypedDict):
        group_email: _builtins.str
        """
        Group email.
        """
        microsoft_teams_webhook_url: _builtins.str
        """
        Url of Microsoft teams webhook.
        """
        pager_duty_key: _builtins.str
        """
        Pager duty key.
        """
        send_email_to_all_users: _builtins.bool
        """
        Send email to all the group members.
        """
        slack_webhook_url: _builtins.str
        """
        Url of slack webhook.
        """
        type: _builtins.str
        """
        Can be one of EMAIL, SLACK, PAGERDUTY, MSTEAMS.
        """
elif False:
    GetUsergroupNotificationConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetUsergroupNotificationConfigArgs:
    def __init__(__self__, *,
                 group_email: _builtins.str,
                 microsoft_teams_webhook_url: _builtins.str,
                 pager_duty_key: _builtins.str,
                 send_email_to_all_users: _builtins.bool,
                 slack_webhook_url: _builtins.str,
                 type: _builtins.str):
        """
        :param _builtins.str group_email: Group email.
        :param _builtins.str microsoft_teams_webhook_url: Url of Microsoft teams webhook.
        :param _builtins.str pager_duty_key: Pager duty key.
        :param _builtins.bool send_email_to_all_users: Send email to all the group members.
        :param _builtins.str slack_webhook_url: Url of slack webhook.
        :param _builtins.str type: Can be one of EMAIL, SLACK, PAGERDUTY, MSTEAMS.
        """
        pulumi.set(__self__, "group_email", group_email)
        pulumi.set(__self__, "microsoft_teams_webhook_url", microsoft_teams_webhook_url)
        pulumi.set(__self__, "pager_duty_key", pager_duty_key)
        pulumi.set(__self__, "send_email_to_all_users", send_email_to_all_users)
        pulumi.set(__self__, "slack_webhook_url", slack_webhook_url)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="groupEmail")
    def group_email(self) -> _builtins.str:
        """
        Group email.
        """
        return pulumi.get(self, "group_email")

    @group_email.setter
    def group_email(self, value: _builtins.str):
        pulumi.set(self, "group_email", value)

    @_builtins.property
    @pulumi.getter(name="microsoftTeamsWebhookUrl")
    def microsoft_teams_webhook_url(self) -> _builtins.str:
        """
        Url of Microsoft teams webhook.
        """
        return pulumi.get(self, "microsoft_teams_webhook_url")

    @microsoft_teams_webhook_url.setter
    def microsoft_teams_webhook_url(self, value: _builtins.str):
        pulumi.set(self, "microsoft_teams_webhook_url", value)

    @_builtins.property
    @pulumi.getter(name="pagerDutyKey")
    def pager_duty_key(self) -> _builtins.str:
        """
        Pager duty key.
        """
        return pulumi.get(self, "pager_duty_key")

    @pager_duty_key.setter
    def pager_duty_key(self, value: _builtins.str):
        pulumi.set(self, "pager_duty_key", value)

    @_builtins.property
    @pulumi.getter(name="sendEmailToAllUsers")
    def send_email_to_all_users(self) -> _builtins.bool:
        """
        Send email to all the group members.
        """
        return pulumi.get(self, "send_email_to_all_users")

    @send_email_to_all_users.setter
    def send_email_to_all_users(self, value: _builtins.bool):
        pulumi.set(self, "send_email_to_all_users", value)

    @_builtins.property
    @pulumi.getter(name="slackWebhookUrl")
    def slack_webhook_url(self) -> _builtins.str:
        """
        Url of slack webhook.
        """
        return pulumi.get(self, "slack_webhook_url")

    @slack_webhook_url.setter
    def slack_webhook_url(self, value: _builtins.str):
        pulumi.set(self, "slack_webhook_url", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> _builtins.str:
        """
        Can be one of EMAIL, SLACK, PAGERDUTY, MSTEAMS.
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: _builtins.str):
        pulumi.set(self, "type", value)


if not MYPY:
    class GetWorkspaceConnectorArgsDict(TypedDict):
        connector_ref: _builtins.str
        """
        Connector Ref is the reference to the connector
        """
        type: _builtins.str
        """
        Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
elif False:
    GetWorkspaceConnectorArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetWorkspaceConnectorArgs:
    def __init__(__self__, *,
                 connector_ref: _builtins.str,
                 type: _builtins.str):
        """
        :param _builtins.str connector_ref: Connector Ref is the reference to the connector
        :param _builtins.str type: Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
        pulumi.set(__self__, "connector_ref", connector_ref)
        pulumi.set(__self__, "type", type)

    @_builtins.property
    @pulumi.getter(name="connectorRef")
    def connector_ref(self) -> _builtins.str:
        """
        Connector Ref is the reference to the connector
        """
        return pulumi.get(self, "connector_ref")

    @connector_ref.setter
    def connector_ref(self, value: _builtins.str):
        pulumi.set(self, "connector_ref", value)

    @_builtins.property
    @pulumi.getter
    def type(self) -> _builtins.str:
        """
        Type is the connector type of the connector. Supported types: aws, azure, gcp
        """
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: _builtins.str):
        pulumi.set(self, "type", value)


if not MYPY:
    class GetWorkspaceEnvironmentVariableArgsDict(TypedDict):
        key: _builtins.str
        """
        Key is the identifier for the variable`
        """
        value: _builtins.str
        """
        value is the value of the variable
        """
        value_type: _builtins.str
        """
        Value type indicates the value type of the variable, text or secret
        """
elif False:
    GetWorkspaceEnvironmentVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetWorkspaceEnvironmentVariableArgs:
    def __init__(__self__, *,
                 key: _builtins.str,
                 value: _builtins.str,
                 value_type: _builtins.str):
        """
        :param _builtins.str key: Key is the identifier for the variable`
        :param _builtins.str value: value is the value of the variable
        :param _builtins.str value_type: Value type indicates the value type of the variable, text or secret
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter
    def key(self) -> _builtins.str:
        """
        Key is the identifier for the variable`
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: _builtins.str):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        """
        value is the value of the variable
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> _builtins.str:
        """
        Value type indicates the value type of the variable, text or secret
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: _builtins.str):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class GetWorkspaceTerraformVariableArgsDict(TypedDict):
        key: _builtins.str
        """
        Key is the identifier for the variable`
        """
        value: _builtins.str
        """
        value is the value of the variable
        """
        value_type: _builtins.str
        """
        Value type indicates the value type of the variable, text or secret
        """
elif False:
    GetWorkspaceTerraformVariableArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetWorkspaceTerraformVariableArgs:
    def __init__(__self__, *,
                 key: _builtins.str,
                 value: _builtins.str,
                 value_type: _builtins.str):
        """
        :param _builtins.str key: Key is the identifier for the variable`
        :param _builtins.str value: value is the value of the variable
        :param _builtins.str value_type: Value type indicates the value type of the variable, text or secret
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "value_type", value_type)

    @_builtins.property
    @pulumi.getter
    def key(self) -> _builtins.str:
        """
        Key is the identifier for the variable`
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: _builtins.str):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        """
        value is the value of the variable
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter(name="valueType")
    def value_type(self) -> _builtins.str:
        """
        Value type indicates the value type of the variable, text or secret
        """
        return pulumi.get(self, "value_type")

    @value_type.setter
    def value_type(self, value: _builtins.str):
        pulumi.set(self, "value_type", value)


if not MYPY:
    class GetWorkspaceTerraformVariableFileArgsDict(TypedDict):
        repository: _builtins.str
        """
        Repository is the name of the repository to fetch the code from.
        """
        repository_branch: _builtins.str
        """
        Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        """
        repository_commit: _builtins.str
        """
        Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        """
        repository_connector: _builtins.str
        """
        Repository connector is the reference to the connector used to fetch the variables.
        """
        repository_path: _builtins.str
        """
        Repository path is the path in which the variables reside.
        """
        repository_sha: _builtins.str
        """
        Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
elif False:
    GetWorkspaceTerraformVariableFileArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetWorkspaceTerraformVariableFileArgs:
    def __init__(__self__, *,
                 repository: _builtins.str,
                 repository_branch: _builtins.str,
                 repository_commit: _builtins.str,
                 repository_connector: _builtins.str,
                 repository_path: _builtins.str,
                 repository_sha: _builtins.str):
        """
        :param _builtins.str repository: Repository is the name of the repository to fetch the code from.
        :param _builtins.str repository_branch: Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        :param _builtins.str repository_commit: Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        :param _builtins.str repository_connector: Repository connector is the reference to the connector used to fetch the variables.
        :param _builtins.str repository_path: Repository path is the path in which the variables reside.
        :param _builtins.str repository_sha: Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
        pulumi.set(__self__, "repository", repository)
        pulumi.set(__self__, "repository_branch", repository_branch)
        pulumi.set(__self__, "repository_commit", repository_commit)
        pulumi.set(__self__, "repository_connector", repository_connector)
        pulumi.set(__self__, "repository_path", repository_path)
        pulumi.set(__self__, "repository_sha", repository_sha)

    @_builtins.property
    @pulumi.getter
    def repository(self) -> _builtins.str:
        """
        Repository is the name of the repository to fetch the code from.
        """
        return pulumi.get(self, "repository")

    @repository.setter
    def repository(self, value: _builtins.str):
        pulumi.set(self, "repository", value)

    @_builtins.property
    @pulumi.getter(name="repositoryBranch")
    def repository_branch(self) -> _builtins.str:
        """
        Repository branch is the name of the branch to fetch the variables from. This cannot be set if repository commit or sha is set
        """
        return pulumi.get(self, "repository_branch")

    @repository_branch.setter
    def repository_branch(self, value: _builtins.str):
        pulumi.set(self, "repository_branch", value)

    @_builtins.property
    @pulumi.getter(name="repositoryCommit")
    def repository_commit(self) -> _builtins.str:
        """
        Repository commit is tag to fetch the variables from. This cannot be set if repository branch or sha is set.
        """
        return pulumi.get(self, "repository_commit")

    @repository_commit.setter
    def repository_commit(self, value: _builtins.str):
        pulumi.set(self, "repository_commit", value)

    @_builtins.property
    @pulumi.getter(name="repositoryConnector")
    def repository_connector(self) -> _builtins.str:
        """
        Repository connector is the reference to the connector used to fetch the variables.
        """
        return pulumi.get(self, "repository_connector")

    @repository_connector.setter
    def repository_connector(self, value: _builtins.str):
        pulumi.set(self, "repository_connector", value)

    @_builtins.property
    @pulumi.getter(name="repositoryPath")
    def repository_path(self) -> _builtins.str:
        """
        Repository path is the path in which the variables reside.
        """
        return pulumi.get(self, "repository_path")

    @repository_path.setter
    def repository_path(self, value: _builtins.str):
        pulumi.set(self, "repository_path", value)

    @_builtins.property
    @pulumi.getter(name="repositorySha")
    def repository_sha(self) -> _builtins.str:
        """
        Repository commit is SHA to fetch the variables from. This cannot be set if repository branch or commit is set.
        """
        return pulumi.get(self, "repository_sha")

    @repository_sha.setter
    def repository_sha(self, value: _builtins.str):
        pulumi.set(self, "repository_sha", value)


