<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="keywords" content=" examples, delete attribute">
<title>  Delete a single attribute • Eclipse Ditto • a digital twin framework</title>

<link rel="stylesheet" href="css/syntax.css">
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="css/modern-business.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="css/customstyles.css">
<link rel="stylesheet" href="css/boxshadowproperties.css">
<link rel="stylesheet" href="css/theme-ditto.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700">

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/anchor-js/2.0.0/anchor.min.js" crossorigin="anonymous"></script>
<script src="js/toc.js"></script>
<script src="js/customscripts.js"></script>

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "url": "https://eclipse.org/ditto/",
  "logo": "https://eclipse.org/ditto/images/ditto.svg"
}
</script>

<link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="images/favicon-96x96.png" sizes="96x96">

<link rel="alternate" type="application/rss+xml" title="Eclipse Ditto Blog" href="https://www.eclipse.org/ditto/feed.xml">

<!-- Eclipse Foundation cookie consent: -->
<link rel="stylesheet" type="text/css" href="//www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css" />
<script src="//www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>

    <script>
        $(document).ready(function() {
            $("#tg-sb-link").click(function() {
                $("#tg-sb-sidebar").toggle();
                $("#tg-sb-content").toggleClass('col-md-9');
                $("#tg-sb-content").toggleClass('col-md-12');
                $("#tg-sb-icon").toggleClass('fa-toggle-on');
                $("#tg-sb-icon").toggleClass('fa-toggle-off');
            });
        });
    </script>
</head>


<script>
    (function(w,d,s,l,i){
        w[l]=w[l]||[];
        w[l].push({'gtm.start':
            new Date().getTime(),event:'gtm.js'});
        var f=d.getElementsByTagName(s)[0],
            j=d.createElement(s),
            dl=l!='dataLayer'?'&l='+l:'';
        j.async=true;
        j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
        f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-5WLCZXC');
</script>



<body>
<!-- Navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container topnavlinks">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-ditto-home" href="index.html">&nbsp;<img src="images/ditto_allwhite_symbolonly.svg" class="ditto-navbar-symbol" alt="Home"> <img src="images/ditto_allwhite_textonly.svg" class="ditto-navbar-symbol-text" alt="Ditto"></a>
        </div>
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <!-- toggle sidebar button -->
                <!--<li><a id="tg-sb-link" href="#"><i id="tg-sb-icon" class="fa fa-toggle-on"></i> Nav</a></li>-->
                <!-- entries without drop-downs appear here -->




                
                
                
                <li><a href="blog.html">Blog</a></li>
                
                
                
                <li><a href="intro-overview.html">Documentation</a></li>
                
                
                
                <li><a href="http-api-doc.html">HTTP API</a></li>
                
                
                
                <li><a href="https://ditto.eclipse.org" target="_blank">Sandbox</a></li>
                
                
                
                <li><a href="https://github.com/eclipse/ditto" target="_blank">GitHub</a></li>
                
                
                
                <li><a href="https://github.com/eclipse/ditto-examples" target="_blank">GitHub examples</a></li>
                
                
                
                <!-- entries with drop-downs appear here -->
                <!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->
                
                
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Links<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        
                        
                        <li><a href="https://projects.eclipse.org/projects/iot.ditto" target="_blank">Eclipse Ditto Project</a></li>
                        
                        
                        
                        <li><a href="https://www.eclipse.org/forums/index.php/f/364/" target="_blank">Forum</a></li>
                        
                        
                        
                        <li><a href="https://ci.eclipse.org/ditto/" target="_blank">Jenkins</a></li>
                        
                        
                        
                        <li><a href="https://dev.eclipse.org/mhonarc/lists/ditto-dev/" target="_blank">Mailing list archives</a></li>
                        
                        
                        
                        <li><a href="https://gitter.im/eclipse/ditto" target="_blank">Gitter.im chat</a></li>
                        
                        
                    </ul>
                </li>
                
                
                
                <!--comment out this block if you want to hide search-->
                <li>
                    <!--start search-->
                    <div id="search-demo-container">
                        <input type="text" id="search-input" placeholder="search...">
                        <ul id="results-container"></ul>
                    </div>
                    <script src="//cdnjs.cloudflare.com/ajax/libs/simple-jekyll-search/0.0.9/jekyll-search.js" type="text/javascript"></script>
                    <script type="text/javascript">
                            SimpleJekyllSearch.init({
                                searchInput: document.getElementById('search-input'),
                                resultsContainer: document.getElementById('results-container'),
                                dataSource: 'search.json',
                                searchResultTemplate: '<li><a href="{url}" title="Delete a single attribute">{title}</a></li>',
                                noResultsText: 'No results found.',
                                limit: 10,
                                fuzzy: true,
                    })
                    </script>
                    <!--end search-->
                </li>
            </ul>
        </div>
    </div>
    <!-- /.container -->
</nav>

<!-- Page Content -->
<div class="container">
  <div id="main">
    <!-- Content Row -->
    <div class="row">
        
        
            <!-- Sidebar Column -->
            <div class="col-md-3" id="tg-sb-sidebar">
                

<ul id="mysidebar" class="nav">
  <li class="sidebarTitle">
    <label for="docVersion">Eclipse Ditto  version:</label>
    <div class="select-wrapper">
      <select id="docVersion" name="docVersion">
        
        <option value="">development</option>
        
        <option value="1.0">1.0</option>
        
        <option value="1.1">1.1</option>
        
      </select>
    </div>
    <div id="dev-warning">
      <div markdown="span" class="alert alert-warning" role="alert" style="font-size:0.6em"><i class="fa fa-warning"></i> <b>Important:</b> This documentation reflects the latest 'development'. You might want to choose a released version.</div>
    </div>
  </li>
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>Introduction</a>
          <ul>
              
              
              
              <li><a href="intro-overview.html">Overview</a></li>
              
              
              
              
              
              
              <li><a href="intro-digitaltwins.html">Digital twins</a></li>
              
              
              
              
              
              
              <li><a href="intro-hello-world.html">Hello world</a></li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>Release Notes</a>
          <ul>
              
              
              
              <li><a href="release_notes_100.html">1.0.0</a></li>
              
              
              
              
              
              
              <li><a href="release_notes_090.html">0.9.0</a></li>
              
              
              
              
              
              
              <li><a href="release_notes_080.html">0.8.0</a></li>
              
              
              
              <li class="subfolders">
                  <a href="#"><span></span>Milestone releases</a>
                  <ul>
                      
                      
                      
                      <li><a href="release_notes_100-M2.html">1.0.0-M2</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_100-M1a.html">1.0.0-M1a</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_090-M2.html">0.9.0-M2</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_090-M1.html">0.9.0-M1</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_080-M3.html">0.8.0-M3</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_080-M2.html">0.8.0-M2</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_080-M1.html">0.8.0-M1</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_030-M2.html">0.3.0-M2</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_030-M1.html">0.3.0-M1</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_020-M1.html">0.2.0-M1</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_010-M3.html">0.1.0-M3</a></li>
                      
                      
                      
                      
                      
                      <li><a href="release_notes_010-M1.html">0.1.0-M1</a></li>
                      
                      
                      
                  </ul>
              </li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>Installation</a>
          <ul>
              
              
              
              <li><a href="installation-building.html">Building Ditto</a></li>
              
              
              
              
              
              
              <li><a href="installation-running.html">Running Ditto</a></li>
              
              
              
              
              
              
              <li><a href="installation-operating.html">Operating Ditto</a></li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>Basic concepts</a>
          <ul>
              
              
              
              <li><a href="basic-overview.html">Overview</a></li>
              
              
              
              <li class="subfolders">
                  <a href="#"><span></span>Model entities</a>
                  <ul>
                      
                      
                      
                      <li><a href="basic-thing.html">Thing</a></li>
                      
                      
                      
                      
                      
                      <li><a href="basic-acl.html">Access Control List (ACL)</a></li>
                      
                      
                      
                      
                      
                      <li><a href="basic-feature.html">Feature</a></li>
                      
                      
                      
                      
                      
                      <li><a href="basic-policy.html">Policy</a></li>
                      
                      
                      
                      
                      
                      <li><a href="basic-namespaces-and-names.html">Namespaces and Names</a></li>
                      
                      
                      
                  </ul>
              </li>
              
              
              
              
              
              
              <li><a href="basic-auth.html">Authentication and Authorization</a></li>
              
              
              
              
              
              
              <li><a href="basic-messages.html">Messages</a></li>
              
              
              
              
              
              
              <li><a href="basic-signals.html">Signals</a></li>
              
              
              
              <li class="subfolders">
                  <a href="#"><span></span>Signal types</a>
                  <ul>
                      
                      
                      
                      <li><a href="basic-signals-command.html">Command</a></li>
                      
                      
                      
                      
                      
                      <li><a href="basic-signals-commandresponse.html">Command response</a></li>
                      
                      
                      
                      
                      
                      <li><a href="basic-signals-errorresponse.html">Error response</a></li>
                      
                      
                      
                      
                      
                      <li><a href="basic-signals-event.html">Event</a></li>
                      
                      
                      
                  </ul>
              </li>
              
              
              
              
              
              
              <li><a href="basic-apis.html">APIs</a></li>
              
              
              
              
              
              
              <li><a href="basic-connections.html">Connections</a></li>
              
              
              
              
              
              
              <li><a href="basic-placeholders.html">Placeholders</a></li>
              
              
              
              
              
              
              <li><a href="basic-changenotifications.html">Change notifications</a></li>
              
              
              
              
              
              
              <li><a href="basic-rql.html">RQL expressions</a></li>
              
              
              
              
              
              
              <li><a href="basic-search.html">Search</a></li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>Architecture</a>
          <ul>
              
              
              
              <li><a href="architecture-overview.html">Overview</a></li>
              
              
              
              <li class="subfolders">
                  <a href="#"><span></span>Services</a>
                  <ul>
                      
                      
                      
                      <li><a href="architecture-services-policies.html">Policies</a></li>
                      
                      
                      
                      
                      
                      <li><a href="architecture-services-things.html">Things</a></li>
                      
                      
                      
                      
                      
                      <li><a href="architecture-services-things-search.html">Things-Search</a></li>
                      
                      
                      
                      
                      
                      <li><a href="architecture-services-connectivity.html">Connectivity</a></li>
                      
                      
                      
                      
                      
                      <li><a href="architecture-services-concierge.html">Concierge</a></li>
                      
                      
                      
                      
                      
                      <li><a href="architecture-services-gateway.html">Gateway</a></li>
                      
                      
                      
                  </ul>
              </li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>HTTP API</a>
          <ul>
              
              
              
              <li><a href="httpapi-overview.html">Overview</a></li>
              
              
              
              
              
              
              <li><a href="httpapi-concepts.html">Concepts</a></li>
              
              
              
              
              
              
              <li><a href="httpapi-search.html">Search</a></li>
              
              
              
              
              
              
              <li><a href="httpapi-messages.html">Messages</a></li>
              
              
              
              
              
              
              <li><a href="httpapi-protocol-bindings-websocket.html">WebSocket protocol binding</a></li>
              
              
              
              
              
              
              <li><a href="httpapi-sse.html">Server sent events</a></li>
              
              
              
              
              
              
              <li><a href="httpapi-postman.html">Run in Postman</a></li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>Connectivity API</a>
          <ul>
              
              
              
              <li><a href="connectivity-overview.html">Overview</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-manage-connections.html">Manage connections</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-protocol-bindings-amqp091.html">AMQP 0.9.1 protocol binding</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-protocol-bindings-amqp10.html">AMQP 1.0 protocol binding</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-protocol-bindings-mqtt.html">MQTT 3.1.1 protocol binding</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-protocol-bindings-http.html">HTTP 1.1 protocol binding</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-protocol-bindings-kafka2.html">Kafka 2.x protocol binding</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-mapping.html">Payload mapping</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-header-mapping.html">Header mapping</a></li>
              
              
              
              
              
              
              <li><a href="connectivity-tls-certificates.html">TLS certificates</a></li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>Client SDK</a>
          <ul>
              
              
              
              <li><a href="client-sdk-overview.html">Overview</a></li>
              
              
              
              
              
              
              <li><a href="client-sdk-java.html">Java</a></li>
              
              
              
              
              
              
              <li><a href="client-sdk-javascript.html">JavaScript</a></li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
        <li class="subfolders">
          <a href="#"><span></span>Ditto Protocol</a>
          <ul>
              
              
              
              <li><a href="protocol-overview.html">Overview</a></li>
              
              
              
              
              
              
              <li><a href="protocol-twinlive.html">Twin/live channel</a></li>
              
              
              
              
              
              
              <li><a href="protocol-specification.html">Specification</a></li>
              
              
              
              
              
              
              <li><a href="protocol-specification-topic.html">Protocol topic</a></li>
              
              
              
              
              
              
              <li><a href="protocol-specification-things.html">Things group</a></li>
              
              
              
              <li class="subfolders">
                  <a href="#"><span></span>→ commands/events</a>
                  <ul>
                      
                      
                      
                      <li><a href="protocol-specification-things-create-or-modify.html">Create/Modify</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-specification-things-retrieve.html">Retrieve</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-specification-things-delete.html">Delete</a></li>
                      
                      
                      
                  </ul>
              </li>
              
              
              
              <li class="subfolders">
                  <a href="#"><span></span>→ search/messages</a>
                  <ul>
                      
                      
                      
                      <li><a href="protocol-specification-things-search.html">Search</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-specification-things-messages.html">Messages</a></li>
                      
                      
                      
                  </ul>
              </li>
              
              
              
              
              
              
              <li><a href="protocol-bindings.html">Bindings</a></li>
              
              
              
              
              
              
              <li><a href="protocol-examples.html">Examples</a></li>
              
              
              
              <li class="subfolders">
                  <a href="#"><span></span>→ Things examples</a>
                  <ul>
                      
                      
                      
                      <li><a href="protocol-examples-creatething.html">Create a Thing</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-deletething.html">Delete a Thing</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifything.html">Modify a Thing</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrievething.html">Retrieve a Thing</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrievethings.html">Retrieve multiple Things</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-createattributes.html">Create Attributes</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-deleteattributes.html">Delete Attributes</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifyattributes.html">Modify Attributes</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrieveattributes.html">Retrieve Attributes</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-createattribute.html">Create a single Attribute</a></li>
                      
                      
                      
                      
                      
                      <li class="active"><a href="protocol-examples-deleteattribute.html">Delete a single Attribute</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifyattribute.html">Modify a single Attribute</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrieveattribute.html">Retrieve a single Attribute</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-createthingdefinition.html">Create a Definition</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-deletethingdefinition.html">Delete a Definition</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifythingdefinition.html">Modify a Definition</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrievethingdefinition.html">Retrieve a Definition</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-createfeatures.html">Create Features</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-deletefeatures.html">Delete Features</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifyfeatures.html">Modify Features</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrievefeatures.html">Retrieve Features</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-createfeature.html">Create a single Feature</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-deletefeature.html">Delete a single Feature</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifyfeature.html">Modify a single Feature</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrievefeature.html">Retrieve a single Feature</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-createdefinition.html">Create Feature Definition</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-deletedefinition.html">Delete Feature Definition</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifydefinition.html">Modify Feature Definition</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrievedefinition.html">Retrieve Feature Definition</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-createproperties.html">Create Feature Properties</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-deleteproperties.html">Delete Feature Properties</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifyproperties.html">Modify Feature Properties</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrieveproperties.html">Retrieve Feature Properties</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-createproperty.html">Create a single Property</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-deleteproperty.html">Delete a single Property</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-modifyproperty.html">Modify a single Property</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-retrieveproperty.html">Retrieve a single Property</a></li>
                      
                      
                      
                      
                      
                      <li><a href="protocol-examples-errorresponses.html">Error Responses</a></li>
                      
                      
                      
                  </ul>
              </li>
              
              
              
              
          </ul>
        </li>
    
  
  
  
    
    <li><a href="sandbox.html">Sandbox</a></li>
    
  
  
  
    
    <li><a href="presentations.html">Presentations</a></li>
    
  
  
  
    
    <li><a href="glossary.html">Glossary</a></li>
    
  
  
  
    
    <li><a href="feedback.html">Feedback</a></li>
    
  
  
  
    
         <p class="external">
             <a href="#" id="collapseAll">Collapse All</a> | <a href="#" id="expandAll">Expand All</a>
         </p>
    
</ul>

<!-- this highlights the active parent class in the sidebar. this is critical so that the parent expands when you're viewing a page. This must appear below the sidebar code above. Otherwise, if placed inside customscripts.js, the script runs before the sidebar code runs and the class never gets inserted.-->
<script>$("li.active").parents('li').toggleClass("active");

$(function() {
  $("#dev-warning").hide();
  changeSelectedDocVersionDropdownSelection($("#docVersion")[0]);
  $("#docVersion").change(changeSelectedDocVersion);
});

function changeSelectedDocVersionDropdownSelection(element) {
  var pathName = window.location.pathname;

  var versionOptions = element.options;
  for (var i = 0; i < versionOptions.length; i++) {
    var versionValue = versionOptions[i].value;
    if ((versionValue !== "") && pathName.startsWith("/ditto/"+versionValue+"/")) {
      $("#docVersion").val(versionValue).change();
      return;
    }
  }
  // fallback: dev with "empty" version value:
  $("#docVersion").val("").change();
  $("#dev-warning").show();
}
function changeSelectedDocVersion() {
  var versionValue = $('#docVersion').val();
  var remainingPath = window.location.pathname.replace("/ditto/", "");
  var versionMatch = remainingPath.match("([0-9].[0.9])/(.*)");
  if (versionValue === "" && !versionMatch) {
    // do nothing, we're already on the correct "dev" version
  } else if (versionMatch && (versionValue === versionMatch[1])) {
    // do nothing, we're already on the correct version
  } else {
    if (versionValue === "" && versionMatch) {
      window.location.pathname = "ditto/" + versionMatch[2];
    } else if (versionValue === "") {
      window.location.pathname = "ditto/" + remainingPath;
    } else if (versionMatch) {
      window.location.pathname = "ditto/" + versionValue + "/" + versionMatch[2];
    } else {
      window.location.pathname = "ditto/" + versionValue + "/" + remainingPath;
    }
  }
}
</script>

            </div>
            
        

        <!-- Content Column -->
        <div class="col-md-9" id="tg-sb-content">
            <div class="post-header">
   <h1 class="post-title-main">Delete a single attribute</h1>
</div>



<div class="post-content">

   

    
    
<!-- this handles the automatic toc. use ## for subheads to auto-generate the on-page minitoc. if you use html tags, you must supply an ID for the heading element in order for it to appear in the minitoc. -->
<script>
$( document ).ready(function() {
  // Handler for .ready() called.

$('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3,h4' });

/* this offset helps account for the space taken up by the floating toolbar. */
$('#toc').on('click', 'a', function() {
  var target = $(this.getAttribute('href'))
    , scroll_target = target.offset().top

  $(window).scrollTop(scroll_target - 10);
  return false
})
  
});
</script>

<div id="toc"></div>

    


    


    

  
<h2 id="deleteattribute">DeleteAttribute</h2>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="s2">"topic"</span><span class="p">:</span><span class="w"> </span><span class="s2">"com.acme/xdk_53/things/twin/commands/delete"</span><span class="p">,</span><span class="w">
  </span><span class="s2">"headers"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
  </span><span class="s2">"path"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/attributes/location"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<h2 id="deleteattributeresponse">DeleteAttributeResponse</h2>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="s2">"topic"</span><span class="p">:</span><span class="w"> </span><span class="s2">"com.acme/xdk_53/things/twin/commands/delete"</span><span class="p">,</span><span class="w">
  </span><span class="s2">"headers"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
  </span><span class="s2">"path"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/attributes/location"</span><span class="p">,</span><span class="w">
  </span><span class="s2">"status"</span><span class="p">:</span><span class="w"> </span><span class="mi">204</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<h2 id="attributedeleted">AttributeDeleted</h2>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="s2">"topic"</span><span class="p">:</span><span class="w"> </span><span class="s2">"com.acme/xdk_53/things/twin/events/deleted"</span><span class="p">,</span><span class="w">
  </span><span class="s2">"headers"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
  </span><span class="s2">"path"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/attributes/location"</span><span class="p">,</span><span class="w">
  </span><span class="s2">"revision"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>



    <div class="tags">
        
    </div>

</div>

<hr class="shaded"/>

<footer>
            <div class="row">
                <div class="col-lg-12 footer">
                    <div class="logo">
                        <a href="https://eclipse.org"><img src="images/eclipse_foundation_logo.svg" alt="Eclipse logo"/></a>
                    </div>
                    <p class="notice">
                        &copy;2020 Eclipse Ditto.
                         Site last generated: May 13, 2020 <br />
                    </p>
                    <div class="quickLinks">
                        <a href="https://www.eclipse.org/legal/privacy.php" target="_blank">
                            &gt; Privacy Policy
                        </a>
                        <a href="https://www.eclipse.org/legal/termsofuse.php" target="_blank">
                            &gt; Terms of Use
                        </a>
                        <a href="https://www.eclipse.org/legal/copyright.php" target="_blank">
                            &gt; Copyright Agent
                        </a>
                        <a href="https://www.eclipse.org/legal" target="_blank">
                            &gt; Legal
                        </a>
                        <a href="https://www.eclipse.org/legal/epl-2.0/" target="_blank">
                            &gt; License
                        </a>
                        <a href="https://eclipse.org/security" target="_blank">
                            &gt; Report a Vulnerability
                        </a>
                    </div>
                </div>
            </div>
</footer>


        </div>
    <!-- /.row -->
</div>
<!-- /.container -->
</div>
<!-- /#main -->
    </div>

</body>
</html>
