You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.6 KiB

2 years ago
2 years ago
  1. /*
  2. * MinIO .NET Library for Amazon S3 Compatible Cloud Storage,
  3. * (C) 2021 MinIO, Inc.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. using System.Xml;
  18. using System.Xml.Serialization;
  19. namespace Minio.Credentials;
  20. [Serializable]
  21. [XmlRoot(ElementName = "AssumeRoleResponse", Namespace = "http://s3.amazonaws.com/doc/2006-03-01/")]
  22. public class AssumeRoleResponse
  23. {
  24. [XmlElement(ElementName = "AssumeRoleResult")]
  25. public AssumeRoleResult AssumeRole { get; set; }
  26. public string ToXML()
  27. {
  28. var settings = new XmlWriterSettings { OmitXmlDeclaration = true };
  29. using var ms = new MemoryStream();
  30. using var xmlWriter = XmlWriter.Create(ms, settings);
  31. var names = new XmlSerializerNamespaces();
  32. names.Add(string.Empty, "http://s3.amazonaws.com/doc/2006-03-01/");
  33. var cs = new XmlSerializer(typeof(AssumeRoleResponse));
  34. cs.Serialize(xmlWriter, this, names);
  35. ms.Flush();
  36. _ = ms.Seek(0, SeekOrigin.Begin);
  37. using var streamReader = new StreamReader(ms);
  38. return streamReader.ReadToEnd();
  39. }
  40. }