예제 #1
0
 /**
  * @param null|string $parentResource
  *
  * @return $this
  */
 public function setParentResource($parentResource)
 {
     if (!empty($parentResource)) {
         $parentResource = $this->service->addArnPrefix($parentResource);
     }
     $this->parentResource = $parentResource;
     return $this;
 }
예제 #2
0
 public function deleteSubscription($request)
 {
     $data = [];
     if (is_array($request)) {
         $name = ArrayUtils::get($request, 'Subscription', ArrayUtils::get($request, 'SubscriptionArn'));
         if (empty($name)) {
             throw new BadRequestException("Delete subscription request contains no 'Subscription' field.");
         }
         $data['SubscriptionArn'] = $this->service->addArnPrefix($name);
     } else {
         $data['SubscriptionArn'] = $this->service->addArnPrefix($request);
     }
     try {
         if (null !== ($result = $this->service->getConnection()->unsubscribe($data))) {
             return ['success' => true];
         }
     } catch (\Exception $ex) {
         if (null !== ($newEx = Sns::translateException($ex))) {
             throw $newEx;
         }
         throw new InternalServerErrorException("Failed to delete subscription '{$data['SubscriptionArn']}'.\n{$ex->getMessage()}", $ex->getCode());
     }
     return [];
 }