import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api'; import { LoggerService, UrlReaderService, SchedulerServiceTaskRunner, SchedulerService } from '@backstage/backend-plugin-api'; import { CatalogProcessor, CatalogProcessorEmit, CatalogProcessorParser, EntityProvider, EntityProviderConnection } from '@backstage/plugin-catalog-node'; import { LocationSpec } from '@backstage/plugin-catalog-common'; import { AwsCredentialIdentity } from '@aws-sdk/types'; import { AwsCredentialsManager } from '@backstage/integration-aws-node'; import { Config } from '@backstage/config'; import { Cluster } from '@aws-sdk/client-eks'; import { Entity } from '@backstage/catalog-model'; /** * Registers the AwsS3EntityProvider with the catalog processing extension point. * * @public */ declare const catalogModuleAwsS3EntityProvider: _backstage_backend_plugin_api.BackendFeature; /** * A factory for providing user-specified AWS credentials for a given AWS account. * * @public */ type AWSCredentialFactory = (awsAccountId: string) => Promise; /** * Options for the EKS cluster entity callback function * * @public */ type EksClusterEntityTransformer = (cluster: Cluster, accountId: string) => Promise; /** * A processor for automatic discovery of resources from EKS clusters. Handles the * `aws-eks` location type, and target accounts/regions of the form * `/`. * * @public */ declare class AwsEKSClusterProcessor implements CatalogProcessor { private credentialsFactory?; private credentialsManager?; private readonly clusterEntityTransformer; static fromConfig(configRoot: Config, options?: { clusterEntityTransformer?: EksClusterEntityTransformer; }): AwsEKSClusterProcessor; constructor(options: { credentialsFactory?: AWSCredentialFactory; credentialsManager?: AwsCredentialsManager; clusterEntityTransformer?: EksClusterEntityTransformer; }); getProcessorName(): string; readLocation(location: LocationSpec, _optional: boolean, emit: CatalogProcessorEmit): Promise; } /** * A processor for ingesting AWS Accounts from AWS Organizations. * * If custom authentication is needed, it can be achieved by configuring the * global AWS.credentials object. * * @public */ declare class AwsOrganizationCloudAccountProcessor implements CatalogProcessor { private readonly credProvider; private readonly organizations; private readonly logger; static fromConfig(config: Config, options: { logger: LoggerService; }): Promise; private constructor(); getProcessorName(): string; readLocation(location: LocationSpec, _optional: boolean, emit: CatalogProcessorEmit): Promise; private normalizeName; private normalizeAccountStatus; private extractInformationFromArn; private getAwsAccounts; private mapAccountToComponent; } /** * A processor for automatic discovery of entities from S3 buckets. Handles the * `s3-discovery` location type, and target bucket URLs e.g. on the form * `https://testbucket.s3.us-east-2.amazonaws.com`. * * @public * @deprecated Use the `AwsS3EntityProvider` instead (see https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/CHANGELOG.md#014). */ declare class AwsS3DiscoveryProcessor implements CatalogProcessor { private readonly reader; constructor(reader: UrlReaderService); getProcessorName(): string; readLocation(location: LocationSpec, optional: boolean, emit: CatalogProcessorEmit, parser: CatalogProcessorParser): Promise; private doRead; } /** * Provider which discovers catalog files (any name) within an S3 bucket. * * Use `AwsS3EntityProvider.fromConfig(...)` to create instances. * * @public */ declare class AwsS3EntityProvider implements EntityProvider { private readonly config; private readonly integration; private readonly awsCredentialsManager; private readonly logger; private s3?; private readonly scheduleFn; private connection?; private endpoint?; static fromConfig(configRoot: Config, options: { logger: LoggerService; schedule?: SchedulerServiceTaskRunner; scheduler?: SchedulerService; }): AwsS3EntityProvider[]; private constructor(); private createScheduleFn; /** {@inheritdoc @backstage/plugin-catalog-node#EntityProvider.getProviderName} */ getProviderName(): string; /** {@inheritdoc @backstage/plugin-catalog-node#EntityProvider.connect} */ connect(connection: EntityProviderConnection): Promise; refresh(logger: LoggerService): Promise; private listAllObjectKeys; private createLocationSpec; private createObjectUrl; } /** * Annotation for specifying AWS account id * * @public */ declare const ANNOTATION_AWS_ACCOUNT_ID: string; /** * Annotation for specifying AWS arn * * @public */ declare const ANNOTATION_AWS_ARN: string; /** * Default transformer for EKS Cluster to Resource Entity * @public */ declare const defaultEksClusterEntityTransformer: EksClusterEntityTransformer; export { ANNOTATION_AWS_ACCOUNT_ID, ANNOTATION_AWS_ARN, type AWSCredentialFactory, AwsEKSClusterProcessor, AwsOrganizationCloudAccountProcessor, AwsS3DiscoveryProcessor, AwsS3EntityProvider, type EksClusterEntityTransformer, catalogModuleAwsS3EntityProvider as default, defaultEksClusterEntityTransformer };