title: CDK - S3 notification causing cyclic reference error
body: <p>I want to create an S3 bucket in one stack, pass it into another and then use it to create a notification onto an sns or sqs. Here is an example of broken down code would look like.</p>
  <p>stack 1</p>
  <pre><code>export class BucketStack extends BaseStack {
  
    public readonly mynBucket: Bucket;
  
  
    constructor(scope: App, id: string, props?: StackProps) {
      const properties: StackProps = {
        env: {
          region: StackConfiguration.region,
        },
      };
      super(scope, id, properties);
      this.myBucket = this.createMyBucket();
    }
  
  
    private createMyBucket() {
     // create and return bucket
  }
  </code></pre>
  <p>stack 2</p>
  <pre><code>import * as s3n from '@aws-cdk/aws-s3-notifications';
  
  export class ServiceStack extends BaseStack {
    constructor(scope: App, id: string, myBucket: Bucket) {
      const properties: StackProps = {
        env: {
          region: StackConfiguration.region,
        },
      };
  
      super(scope, id, properties);
  
      const topic = new Topic(this, 'Topic');
    
      myBucket.addEventNotification(EventType.OBJECT_CREATED_PUT, new s3n.SnsDestination(topic));
  </code></pre>
  <p>Error is
  <code>Error: 'my-bucket-stack' depends on 'my-service-stack' (Depends on Lambda resources., Depends on resources.). Adding this dependency (my-service-stack -&gt; my-bucket-stack/myBucket/Resource.Arn) would create a cyclic reference. </code></p>