code: @Override
      public Snapshot authorizeSnapshotAccess(AuthorizeSnapshotAccessRequest request) {
          request = beforeClientExecution(request);
          return executeAuthorizeSnapshotAccess(request);
      }
docs: <p>
  Authorizes the specified AWS customer account to restore the specified snapshot.
  </p>
  <p>
  For more information about working with snapshots, go to <a
  href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html">Amazon Redshift Snapshots</a>
  in the <i>Amazon Redshift Cluster Management Guide</i>.
  </p>
  
  @param authorizeSnapshotAccessRequest
  @return Result of the AuthorizeSnapshotAccess operation returned by the service.
  @throws ClusterSnapshotNotFoundException
  The snapshot identifier does not refer to an existing cluster snapshot.
  @throws AuthorizationAlreadyExistsException
  The specified CIDR block or EC2 security group is already authorized for the specified cluster security
  group.
  @throws AuthorizationQuotaExceededException
  The authorization quota for the cluster security group has been reached.
  @throws DependentServiceRequestThrottlingException
  The request cannot be completed because a dependent service is throttling requests made by Amazon
  Redshift on your behalf. Wait and retry the request.
  @throws InvalidClusterSnapshotStateException
  The specified cluster snapshot is not in the <code>available</code> state, or other accounts are
  authorized to access the snapshot.
  @throws LimitExceededException
  The encryption key has exceeded its grant limit in AWS KMS.
  @sample AmazonRedshift.AuthorizeSnapshotAccess
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeSnapshotAccess"
  target="_top">AWS API Documentation</a>