144 lines
4.9 KiB
TypeScript
144 lines
4.9 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import { CfnSourceApiAssociation } from './appsync.generated';
|
|
import type { IGraphqlApi } from './graphqlapi-base';
|
|
import type { IRole } from '../../aws-iam';
|
|
import type { IResource } from '../../core';
|
|
import { Resource } from '../../core';
|
|
import type { ISourceApiAssociationRef, SourceApiAssociationReference } from '../../interfaces/generated/aws-appsync-interfaces.generated';
|
|
/**
|
|
* Merge type used to associate the source API
|
|
*/
|
|
export declare enum MergeType {
|
|
/**
|
|
* Manual merge. The merge must be triggered manually when the source API has changed.
|
|
*/
|
|
MANUAL_MERGE = "MANUAL_MERGE",
|
|
/**
|
|
* Auto merge. The merge is triggered automatically when the source API has changed.
|
|
*/
|
|
AUTO_MERGE = "AUTO_MERGE"
|
|
}
|
|
/**
|
|
* Interface for AppSync Source Api Association
|
|
*/
|
|
export interface ISourceApiAssociation extends IResource, ISourceApiAssociationRef {
|
|
/**
|
|
* The association id.
|
|
*/
|
|
readonly associationId: string;
|
|
/**
|
|
* The association arn.
|
|
*/
|
|
readonly associationArn: string;
|
|
/**
|
|
* The source api in the association.
|
|
*/
|
|
readonly sourceApi: IGraphqlApi;
|
|
/**
|
|
* The merged api in the association.
|
|
*/
|
|
readonly mergedApi: IGraphqlApi;
|
|
}
|
|
/**
|
|
* The attributes for imported AppSync Source Api Association.
|
|
*/
|
|
export interface SourceApiAssociationAttributes {
|
|
/**
|
|
* The association arn.
|
|
*/
|
|
readonly associationArn: string;
|
|
/**
|
|
* The source api in the association.
|
|
*/
|
|
readonly sourceApi: IGraphqlApi;
|
|
/**
|
|
* The merged api in the association.
|
|
*/
|
|
readonly mergedApi: IGraphqlApi;
|
|
}
|
|
/**
|
|
* Properties for SourceApiAssociation which associates an AppSync Source API with an AppSync Merged API
|
|
*/
|
|
export interface SourceApiAssociationProps {
|
|
/**
|
|
* The source api to associate.
|
|
*/
|
|
readonly sourceApi: IGraphqlApi;
|
|
/**
|
|
* The merged api to associate.
|
|
*/
|
|
readonly mergedApi: IGraphqlApi;
|
|
/**
|
|
* The merged api execution role for adding the access policy for the source api.
|
|
*/
|
|
readonly mergedApiExecutionRole: IRole;
|
|
/**
|
|
* The merge type for the source
|
|
*
|
|
* @default - AUTO_MERGE
|
|
*/
|
|
readonly mergeType?: MergeType;
|
|
/**
|
|
* The description of the source api association
|
|
*
|
|
* @default - None
|
|
*/
|
|
readonly description?: string;
|
|
}
|
|
/**
|
|
* AppSync SourceApiAssociation which associates an AppSync source API to an AppSync Merged API.
|
|
* The initial creation of the SourceApiAssociation merges the source API into the Merged API schema.
|
|
*/
|
|
export declare class SourceApiAssociation extends Resource implements ISourceApiAssociation {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* Import Appsync Source Api Association from source API, merged api, and merge type.
|
|
*/
|
|
static fromSourceApiAssociationAttributes(scope: Construct, id: string, attrs: SourceApiAssociationAttributes): ISourceApiAssociation;
|
|
/**
|
|
* The association id.
|
|
*/
|
|
readonly associationId: string;
|
|
/**
|
|
* The association arn.
|
|
*/
|
|
readonly associationArn: string;
|
|
/**
|
|
* The underlying CFN source api association resource.
|
|
*/
|
|
readonly association: CfnSourceApiAssociation;
|
|
/**
|
|
* The merged api in the association.
|
|
*/
|
|
readonly mergedApi: IGraphqlApi;
|
|
/**
|
|
* The source api in the association.
|
|
*/
|
|
readonly sourceApi: IGraphqlApi;
|
|
/**
|
|
* The merge type for the source api association.
|
|
*/
|
|
readonly mergeType: MergeType;
|
|
/**
|
|
* The merged api execution role for attaching the access policy.
|
|
*/
|
|
private readonly mergedApiExecutionRole?;
|
|
constructor(scope: Construct, id: string, props: SourceApiAssociationProps);
|
|
get sourceApiAssociationRef(): SourceApiAssociationReference;
|
|
}
|
|
/**
|
|
* Adds an IAM permission to the Merged API execution role for GraphQL access on the source AppSync api.
|
|
*
|
|
* @param sourceApiAssociation The CfnSourceApiAssociation resource which to add a permission to access at runtime.
|
|
* @param mergedApiExecutionRole The merged api execution role on which to add the permission.
|
|
*/
|
|
export declare function addSourceGraphQLPermission(sourceApiAssociation: CfnSourceApiAssociation, mergedApiExecutionRole: IRole): import("../../aws-iam").AddToPrincipalPolicyResult;
|
|
/**
|
|
* Adds an IAM permission to the Merged API execution role for automatically merging the source API metadata whenever
|
|
* the source API is updated.
|
|
* @param sourceApiAssociation The CfnSourceApiAssociation resource which to add permission to perform merge operations on.
|
|
* @param mergedApiExecutionRole The merged api execution role on which to add the permission.
|
|
*/
|
|
export declare function addSourceApiAutoMergePermission(sourceApiAssociation: CfnSourceApiAssociation, mergedApiExecutionRole: IRole): import("../../aws-iam").AddToPrincipalPolicyResult;
|