text: ﻿/**
   * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   * SPDX-License-Identifier: Apache-2.0.
   */
  
  #pragma once
  #include <aws/mediatailor/MediaTailor_EXPORTS.h>
  #include <aws/mediatailor/model/AccessConfiguration.h>
  #include <aws/core/utils/memory/stl/AWSString.h>
  #include <aws/core/utils/DateTime.h>
  #include <aws/mediatailor/model/DefaultSegmentDeliveryConfiguration.h>
  #include <aws/mediatailor/model/HttpConfiguration.h>
  #include <aws/core/utils/memory/stl/AWSMap.h>
  #include <utility>
  
  namespace Aws
  {
  template<typename RESULT_TYPE>
  class AmazonWebServiceResult;
  
  namespace Utils
  {
  namespace Json
  {
    class JsonValue;
  } // namespace Json
  } // namespace Utils
  namespace MediaTailor
  {
  namespace Model
  {
    class AWS_MEDIATAILOR_API UpdateSourceLocationResult
    {
    public:
      UpdateSourceLocationResult();
      UpdateSourceLocationResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
      UpdateSourceLocationResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
  
  
      /**
       * <p>The access configuration for the source location.</p>
       */
      inline const AccessConfiguration& GetAccessConfiguration() const{ return m_accessConfiguration; }
  
      /**
       * <p>The access configuration for the source location.</p>
       */
      inline void SetAccessConfiguration(const AccessConfiguration& value) { m_accessConfiguration = value; }
  
      /**
       * <p>The access configuration for the source location.</p>
       */
      inline void SetAccessConfiguration(AccessConfiguration&& value) { m_accessConfiguration = std::move(value); }
  
      /**
       * <p>The access configuration for the source location.</p>
       */
      inline UpdateSourceLocationResult& WithAccessConfiguration(const AccessConfiguration& value) { SetAccessConfiguration(value); return *this;}
  
      /**
       * <p>The access configuration for the source location.</p>
       */
      inline UpdateSourceLocationResult& WithAccessConfiguration(AccessConfiguration&& value) { SetAccessConfiguration(std::move(value)); return *this;}
  
  
      /**
       * <p>The ARN of the source location.</p>
       */
      inline const Aws::String& GetArn() const{ return m_arn; }
  
      /**
       * <p>The ARN of the source location.</p>
       */
      inline void SetArn(const Aws::String& value) { m_arn = value; }
  
      /**
       * <p>The ARN of the source location.</p>
       */
      inline void SetArn(Aws::String&& value) { m_arn = std::move(value); }
  
      /**
       * <p>The ARN of the source location.</p>
       */
      inline void SetArn(const char* value) { m_arn.assign(value); }
  
      /**
       * <p>The ARN of the source location.</p>
       */
      inline UpdateSourceLocationResult& WithArn(const Aws::String& value) { SetArn(value); return *this;}
  
      /**
       * <p>The ARN of the source location.</p>
       */
      inline UpdateSourceLocationResult& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
  
      /**
       * <p>The ARN of the source location.</p>
       */
      inline UpdateSourceLocationResult& WithArn(const char* value) { SetArn(value); return *this;}
  
  
      /**
       * <p>The timestamp that indicates when the source location was created.</p>
       */
      inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; }
  
      /**
       * <p>The timestamp that indicates when the source location was created.</p>
       */
      inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTime = value; }
  
      /**
       * <p>The timestamp that indicates when the source location was created.</p>
       */
      inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTime = std::move(value); }
  
      /**
       * <p>The timestamp that indicates when the source location was created.</p>
       */
      inline UpdateSourceLocationResult& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;}
  
      /**
       * <p>The timestamp that indicates when the source location was created.</p>
       */
      inline UpdateSourceLocationResult& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;}
  
  
      /**
       * <p>The default segment delivery configuration settings.</p>
       */
      inline const DefaultSegmentDeliveryConfiguration& GetDefaultSegmentDeliveryConfiguration() const{ return m_defaultSegmentDeliveryConfiguration; }
  
      /**
       * <p>The default segment delivery configuration settings.</p>
       */
      inline void SetDefaultSegmentDeliveryConfiguration(const DefaultSegmentDeliveryConfiguration& value) { m_defaultSegmentDeliveryConfiguration = value; }
  
      /**
       * <p>The default segment delivery configuration settings.</p>
       */
      inline void SetDefaultSegmentDeliveryConfiguration(DefaultSegmentDeliveryConfiguration&& value) { m_defaultSegmentDeliveryConfiguration = std::move(value); }
  
      /**
       * <p>The default segment delivery configuration settings.</p>
       */
      inline UpdateSourceLocationResult& WithDefaultSegmentDeliveryConfiguration(const DefaultSegmentDeliveryConfiguration& value) { SetDefaultSegmentDeliveryConfiguration(value); return *this;}
  
      /**
       * <p>The default segment delivery configuration settings.</p>
       */
      inline UpdateSourceLocationResult& WithDefaultSegmentDeliveryConfiguration(DefaultSegmentDeliveryConfiguration&& value) { SetDefaultSegmentDeliveryConfiguration(std::move(value)); return *this;}
  
  
      /**
       * <p>The HTTP package configuration settings for the source location.</p>
       */
      inline const HttpConfiguration& GetHttpConfiguration() const{ return m_httpConfiguration; }
  
      /**
       * <p>The HTTP package configuration settings for the source location.</p>
       */
      inline void SetHttpConfiguration(const HttpConfiguration& value) { m_httpConfiguration = value; }
  
      /**
       * <p>The HTTP package configuration settings for the source location.</p>
       */
      inline void SetHttpConfiguration(HttpConfiguration&& value) { m_httpConfiguration = std::move(value); }
  
      /**
       * <p>The HTTP package configuration settings for the source location.</p>
       */
      inline UpdateSourceLocationResult& WithHttpConfiguration(const HttpConfiguration& value) { SetHttpConfiguration(value); return *this;}
  
      /**
       * <p>The HTTP package configuration settings for the source location.</p>
       */
      inline UpdateSourceLocationResult& WithHttpConfiguration(HttpConfiguration&& value) { SetHttpConfiguration(std::move(value)); return *this;}
  
  
      /**
       * <p>The timestamp that indicates when the source location was last modified.</p>
       */
      inline const Aws::Utils::DateTime& GetLastModifiedTime() const{ return m_lastModifiedTime; }
  
      /**
       * <p>The timestamp that indicates when the source location was last modified.</p>
       */
      inline void SetLastModifiedTime(const Aws::Utils::DateTime& value) { m_lastModifiedTime = value; }
  
      /**
       * <p>The timestamp that indicates when the source location was last modified.</p>
       */
      inline void SetLastModifiedTime(Aws::Utils::DateTime&& value) { m_lastModifiedTime = std::move(value); }
  
      /**
       * <p>The timestamp that indicates when the source location was last modified.</p>
       */
      inline UpdateSourceLocationResult& WithLastModifiedTime(const Aws::Utils::DateTime& value) { SetLastModifiedTime(value); return *this;}
  
      /**
       * <p>The timestamp that indicates when the source location was last modified.</p>
       */
      inline UpdateSourceLocationResult& WithLastModifiedTime(Aws::Utils::DateTime&& value) { SetLastModifiedTime(std::move(value)); return *this;}
  
  
      /**
       * <p>The name of the source location.</p>
       */
      inline const Aws::String& GetSourceLocationName() const{ return m_sourceLocationName; }
  
      /**
       * <p>The name of the source location.</p>
       */
      inline void SetSourceLocationName(const Aws::String& value) { m_sourceLocationName = value; }
  
      /**
       * <p>The name of the source location.</p>
       */
      inline void SetSourceLocationName(Aws::String&& value) { m_sourceLocationName = std::move(value); }
  
      /**
       * <p>The name of the source location.</p>
       */
      inline void SetSourceLocationName(const char* value) { m_sourceLocationName.assign(value); }
  
      /**
       * <p>The name of the source location.</p>
       */
      inline UpdateSourceLocationResult& WithSourceLocationName(const Aws::String& value) { SetSourceLocationName(value); return *this;}
  
      /**
       * <p>The name of the source location.</p>
       */
      inline UpdateSourceLocationResult& WithSourceLocationName(Aws::String&& value) { SetSourceLocationName(std::move(value)); return *this;}
  
      /**
       * <p>The name of the source location.</p>
       */
      inline UpdateSourceLocationResult& WithSourceLocationName(const char* value) { SetSourceLocationName(value); return *this;}
  
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tags = value; }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tags = std::move(value); }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& AddTags(const Aws::String& key, const Aws::String& value) { m_tags.emplace(key, value); return *this; }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& AddTags(Aws::String&& key, const Aws::String& value) { m_tags.emplace(std::move(key), value); return *this; }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& AddTags(const Aws::String& key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& AddTags(Aws::String&& key, Aws::String&& value) { m_tags.emplace(std::move(key), std::move(value)); return *this; }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& AddTags(const char* key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& AddTags(Aws::String&& key, const char* value) { m_tags.emplace(std::move(key), value); return *this; }
  
      /**
       * <p>The tags assigned to the source location.</p>
       */
      inline UpdateSourceLocationResult& AddTags(const char* key, const char* value) { m_tags.emplace(key, value); return *this; }
  
    private:
  
      AccessConfiguration m_accessConfiguration;
  
      Aws::String m_arn;
  
      Aws::Utils::DateTime m_creationTime;
  
      DefaultSegmentDeliveryConfiguration m_defaultSegmentDeliveryConfiguration;
  
      HttpConfiguration m_httpConfiguration;
  
      Aws::Utils::DateTime m_lastModifiedTime;
  
      Aws::String m_sourceLocationName;
  
      Aws::Map<Aws::String, Aws::String> m_tags;
    };
  
  } // namespace Model
  } // namespace MediaTailor
  } // namespace Aws
  