/** * @param null|string $parentResource * * @return $this */ public function setParentResource($parentResource) { if (!empty($parentResource)) { $parentResource = $this->service->addArnPrefix($parentResource); } $this->parentResource = $parentResource; return $this; }
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 []; }