:doc:`CloudWatchObservabilityAccessManager <../../oam>` / Client / update_link

***********
update_link
***********



.. py:method:: CloudWatchObservabilityAccessManager.Client.update_link(**kwargs)

  

  Use this operation to change what types of data are shared from a source account to its linked monitoring account sink. You can't change the sink or change the monitoring account with this operation.

   

  When you update a link, you can optionally specify filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.

   

  To update the list of tags associated with the sink, use `TagResource <https://docs.aws.amazon.com/OAM/latest/APIReference/API_TagResource.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/oam-2022-06-10/UpdateLink>`_  


  **Request Syntax**
  ::

    response = client.update_link(
        Identifier='string',
        IncludeTags=True|False,
        LinkConfiguration={
            'LogGroupConfiguration': {
                'Filter': 'string'
            },
            'MetricConfiguration': {
                'Filter': 'string'
            }
        },
        ResourceTypes=[
            'AWS::CloudWatch::Metric'|'AWS::Logs::LogGroup'|'AWS::XRay::Trace'|'AWS::ApplicationInsights::Application'|'AWS::InternetMonitor::Monitor'|'AWS::ApplicationSignals::Service'|'AWS::ApplicationSignals::ServiceLevelObjective',
        ]
    )
    
  :type Identifier: string
  :param Identifier: **[REQUIRED]** 

    The ARN of the link that you want to update.

    

  
  :type IncludeTags: boolean
  :param IncludeTags: 

    Specifies whether to include the tags associated with the link in the response after the update operation. When ``IncludeTags`` is set to ``true`` and the caller has the required permission, ``oam:ListTagsForResource``, the API will return the tags for the specified resource. If the caller doesn't have the required permission, ``oam:ListTagsForResource``, the API will raise an exception.

     

    The default value is ``false``.

    

  
  :type LinkConfiguration: dict
  :param LinkConfiguration: 

    Use this structure to filter which metric namespaces and which log groups are to be shared from the source account to the monitoring account.

    

  
    - **LogGroupConfiguration** *(dict) --* 

      Use this structure to filter which log groups are to send log events from the source account to the monitoring account.

      

    
      - **Filter** *(string) --* **[REQUIRED]** 

        Use this field to specify which log groups are to share their log events with the monitoring account. Use the term ``LogGroupName`` and one or more of the following operands. Use single quotation marks (') around log group names. The matching of log group names is case sensitive. Each filter has a limit of five conditional operands. Conditional operands are ``AND`` and ``OR``.

         

        
        * ``=`` and ``!=``
         
        * ``AND``
         
        * ``OR``
         
        * ``LIKE`` and ``NOT LIKE``. These can be used only as prefix searches. Include a ``%`` at the end of the string that you want to search for and include.
         
        * ``IN`` and ``NOT IN``, using parentheses ``( )``
        

         

        Examples:

         

        
        * ``LogGroupName IN ('This-Log-Group', 'Other-Log-Group')`` includes only the log groups with names ``This-Log-Group`` and ``Other-Log-Group``.
         
        * ``LogGroupName NOT IN ('Private-Log-Group', 'Private-Log-Group-2')`` includes all log groups except the log groups with names ``Private-Log-Group`` and ``Private-Log-Group-2``.
         
        * ``LogGroupName LIKE 'aws/lambda/%' OR LogGroupName LIKE 'AWSLogs%'`` includes all log groups that have names that start with ``aws/lambda/`` or ``AWSLogs``.
        

         

        .. note::

          

          If you are updating a link that uses filters, you can specify ``*`` as the only value for the ``filter`` parameter to delete the filter and share all log groups with the monitoring account.

          

        

      
    
    - **MetricConfiguration** *(dict) --* 

      Use this structure to filter which metric namespaces are to be shared from the source account to the monitoring account.

      

    
      - **Filter** *(string) --* **[REQUIRED]** 

        Use this field to specify which metrics are to be shared with the monitoring account. Use the term ``Namespace`` and one or more of the following operands. Use single quotation marks (') around namespace names. The matching of namespace names is case sensitive. Each filter has a limit of five conditional operands. Conditional operands are ``AND`` and ``OR``.

         

        
        * ``=`` and ``!=``
         
        * ``AND``
         
        * ``OR``
         
        * ``LIKE`` and ``NOT LIKE``. These can be used only as prefix searches. Include a ``%`` at the end of the string that you want to search for and include.
         
        * ``IN`` and ``NOT IN``, using parentheses ``( )``
        

         

        Examples:

         

        
        * ``Namespace NOT LIKE 'AWS/%'`` includes only namespaces that don't start with ``AWS/``, such as custom namespaces.
         
        * ``Namespace IN ('AWS/EC2', 'AWS/ELB', 'AWS/S3')`` includes only the metrics in the EC2, Elastic Load Balancing, and Amazon S3 namespaces.
         
        * ``Namespace = 'AWS/EC2' OR Namespace NOT LIKE 'AWS/%'`` includes only the EC2 namespace and your custom namespaces.
        

         

        .. note::

          

          If you are updating a link that uses filters, you can specify ``*`` as the only value for the ``filter`` parameter to delete the filter and share all metric namespaces with the monitoring account.

          

        

      
    
  
  :type ResourceTypes: list
  :param ResourceTypes: **[REQUIRED]** 

    An array of strings that define which types of data that the source account will send to the monitoring account.

     

    Your input here replaces the current set of data types that are shared.

    

  
    - *(string) --* 

    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'Arn': 'string',
          'Id': 'string',
          'Label': 'string',
          'LabelTemplate': 'string',
          'LinkConfiguration': {
              'LogGroupConfiguration': {
                  'Filter': 'string'
              },
              'MetricConfiguration': {
                  'Filter': 'string'
              }
          },
          'ResourceTypes': [
              'string',
          ],
          'SinkArn': 'string',
          'Tags': {
              'string': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Arn** *(string) --* 

        The ARN of the link that you have updated.

        
      

      - **Id** *(string) --* 

        The random ID string that Amazon Web Services generated as part of the sink ARN.

        
      

      - **Label** *(string) --* 

        The label assigned to this link, with the variables resolved to their actual values.

        
      

      - **LabelTemplate** *(string) --* 

        The exact label template that was specified when the link was created, with the template variables not resolved.

        
      

      - **LinkConfiguration** *(dict) --* 

        This structure includes filters that specify which metric namespaces and which log groups are shared from the source account to the monitoring account.

        
        

        - **LogGroupConfiguration** *(dict) --* 

          Use this structure to filter which log groups are to send log events from the source account to the monitoring account.

          
          

          - **Filter** *(string) --* 

            Use this field to specify which log groups are to share their log events with the monitoring account. Use the term ``LogGroupName`` and one or more of the following operands. Use single quotation marks (') around log group names. The matching of log group names is case sensitive. Each filter has a limit of five conditional operands. Conditional operands are ``AND`` and ``OR``.

             

            
            * ``=`` and ``!=``
             
            * ``AND``
             
            * ``OR``
             
            * ``LIKE`` and ``NOT LIKE``. These can be used only as prefix searches. Include a ``%`` at the end of the string that you want to search for and include.
             
            * ``IN`` and ``NOT IN``, using parentheses ``( )``
            

             

            Examples:

             

            
            * ``LogGroupName IN ('This-Log-Group', 'Other-Log-Group')`` includes only the log groups with names ``This-Log-Group`` and ``Other-Log-Group``.
             
            * ``LogGroupName NOT IN ('Private-Log-Group', 'Private-Log-Group-2')`` includes all log groups except the log groups with names ``Private-Log-Group`` and ``Private-Log-Group-2``.
             
            * ``LogGroupName LIKE 'aws/lambda/%' OR LogGroupName LIKE 'AWSLogs%'`` includes all log groups that have names that start with ``aws/lambda/`` or ``AWSLogs``.
            

             

            .. note::

              

              If you are updating a link that uses filters, you can specify ``*`` as the only value for the ``filter`` parameter to delete the filter and share all log groups with the monitoring account.

              

            
      
        

        - **MetricConfiguration** *(dict) --* 

          Use this structure to filter which metric namespaces are to be shared from the source account to the monitoring account.

          
          

          - **Filter** *(string) --* 

            Use this field to specify which metrics are to be shared with the monitoring account. Use the term ``Namespace`` and one or more of the following operands. Use single quotation marks (') around namespace names. The matching of namespace names is case sensitive. Each filter has a limit of five conditional operands. Conditional operands are ``AND`` and ``OR``.

             

            
            * ``=`` and ``!=``
             
            * ``AND``
             
            * ``OR``
             
            * ``LIKE`` and ``NOT LIKE``. These can be used only as prefix searches. Include a ``%`` at the end of the string that you want to search for and include.
             
            * ``IN`` and ``NOT IN``, using parentheses ``( )``
            

             

            Examples:

             

            
            * ``Namespace NOT LIKE 'AWS/%'`` includes only namespaces that don't start with ``AWS/``, such as custom namespaces.
             
            * ``Namespace IN ('AWS/EC2', 'AWS/ELB', 'AWS/S3')`` includes only the metrics in the EC2, Elastic Load Balancing, and Amazon S3 namespaces.
             
            * ``Namespace = 'AWS/EC2' OR Namespace NOT LIKE 'AWS/%'`` includes only the EC2 namespace and your custom namespaces.
            

             

            .. note::

              

              If you are updating a link that uses filters, you can specify ``*`` as the only value for the ``filter`` parameter to delete the filter and share all metric namespaces with the monitoring account.

              

            
      
    
      

      - **ResourceTypes** *(list) --* 

        The resource types now supported by this link.

        
        

        - *(string) --* 
    
      

      - **SinkArn** *(string) --* 

        The ARN of the sink that is used for this link.

        
      

      - **Tags** *(dict) --* 

        The tags assigned to the link.

        
        

        - *(string) --* 
          

          - *(string) --* 
    
  
  
  **Exceptions**
  
  *   :py:class:`CloudWatchObservabilityAccessManager.Client.exceptions.InternalServiceFault`

  
  *   :py:class:`CloudWatchObservabilityAccessManager.Client.exceptions.MissingRequiredParameterException`

  
  *   :py:class:`CloudWatchObservabilityAccessManager.Client.exceptions.InvalidParameterException`

  
  *   :py:class:`CloudWatchObservabilityAccessManager.Client.exceptions.ResourceNotFoundException`

  